之前出過動態(tài)域名解析做穿透,但是這個需要有動態(tài)公網(wǎng)ip,有好多家里的寬帶都是"大內(nèi)網(wǎng)"。雖然我們還出了一期不需要公網(wǎng)ip的內(nèi)網(wǎng)穿透,可是沒有公網(wǎng)ip的免費內(nèi)網(wǎng)穿透一般都不穩(wěn)定,所以今天跟大家分享一個新的內(nèi)網(wǎng)穿透工具做備用,親測免費好用(不建議商業(yè)用途)。
釘釘提供的這個內(nèi)網(wǎng)穿透原本是為了開發(fā)者在臨時使用時提供了一個公網(wǎng)代理服務的公網(wǎng)IP,目的是方便開發(fā)測試。
一、啟動內(nèi)網(wǎng)穿透
首先需要下載釘釘內(nèi)網(wǎng)穿透的程序,可以使用https://github.com/mzlogin/ding-tunnel.git來下載,(考慮到github下載速度感人,我已經(jīng)下載了壓縮包放在了QQ群里了,需要自取)里面包含了linuxlinux_armmac_64windows_64的程序,很顯然我們的玩客云是ARM核心,所以我們需要這個文件包。拿到文件包后,我把釘釘?shù)哪_本程序和配置文件放在了一個名叫l(wèi)inux_arm的文件夾下,并且把這個文件夾放在了/root目錄。
# 先進入到linux_arm目錄 cd /root/linux_arm
# 在授權ding程序777權限 chmod 777 ding
# 執(zhí)行命令 ./ding -config=./ding.cfg -subdomain=域名前綴 端口
./ding -config=./ding.cfg -subdomain=tv 80
#如下圖就可以使用域名http://tv.vaiwan.cn來訪問網(wǎng)站了,當然在這之前你要把這個域名綁定在你的網(wǎng)站上。
注意:啟動命令的子域參數(shù)有可能被別人占用,盡量不要用字符,可以用自己公司名的拼音。如果遇到被占用換一個即可
但是官方給的命令只適合測試使用,具體來說就是你不能關閉shell窗口不然穿透就會停止。
參數(shù) |
說明 |
config |
內(nèi)網(wǎng)穿透的配置文件,按命令照示例固定為釘釘提供的./ding.cfg,無需修改。 |
subdomain |
您需要使用的域名前綴,該前綴將會匹配到“vaiwan.com”前面,例如你的 subdomain 是 tv,啟動工具后會將tv.vaiwan.com 映射到本地。 |
端口 |
您需要代理的本地服務 http-server 端口,例如你本地端口為 80 等。 |
啟動完客戶端后,你可以通過域名 http://tv.vaiwan.com 訪問都會映射到 http://127.0.0.1:80上。
在釘釘目錄下使用命令./ding --help可以查看命令幫助文檔,當然這并沒有什么卵用,因為都是英文我看不懂!!!所以下面就玩客云環(huán)境談下實用得命令吧!
#命令如下:
/root/linux_arm/ding -config=/root/linux_arm/ding.cfg -log=stdout -log-level=INFO -proto=http -subdomain=tv 80
#解釋下:
#/root/linux_arm/ding 這一串是程序ding的路徑。
#-config=/root/linux_arm/ding.cfg這個是參數(shù)congfig的配置,表示congfig的位置。
#-log=stdout這里指明了日志格式為stdout
#-log-level=INFO指明日志級別為INFO
#-proto=http僅用http
#-subdomain=tv 80 二級域名為tv 本地端口為80
不難發(fā)現(xiàn)現(xiàn)在這個界面就跟之前執(zhí)行的命令界面不同,是的這個界面我們可以使用nohup、&這兩個命令來實現(xiàn)后臺運行,關掉終端不會停止運行。
# nohup命令可以在關閉終端后不停止命令,就是不間斷執(zhí)行nohup后的命令
# & 實現(xiàn)后臺運行
因此我們可以對命令/root/linux_arm/ding -config=/root/linux_arm/ding.cfg -log=stdout -log-level=INFO -proto=http -subdomain=tv 80做一些改變,讓我們在關閉shell窗口后內(nèi)網(wǎng)穿透依然有效。
nohup /root/linux_arm/ding -config=/root/linux_arm/ding.cfg -log=stdout -log-level=INFO -proto=http -subdomain=tv 80 >/root/linux_arm/1.txt 2>1 &
# >/root/linux_arm/1.txt 2>1 把nohup.out日志寫入/root/linux_arm/1.txt里
# 如下圖該穿透就已經(jīng)生效了,其中界面上顯示的[7]11807就是當前命令生成的進程ID
當然,如果你要穿透不是搭建在玩客云上的應用,那么我們就需要再修改下命令,如下:
nohup /root/linux_arm/ding -config=/root/linux_arm/ding.cfg -log=stdout -log-level=INFO -proto=http -subdomain=tv 192.168.0.100:80 >/root/linux_arm/1.txt 2>1 &
# 修改的地方只是把以前的端口改成了具體的局域網(wǎng)內(nèi)你要穿透的ip地址加端口號,這里的192.168.0.100就是你要穿透的應用ip地址,:80是你要穿透應用的本地端口號。
二、停止穿透
在不關機玩客云的情況下停止穿透的可能性很小,但是保不齊用得到。所以這里就簡單的說下怎么樣停止后臺運行的穿透進程,這里需要認識兩個命令:
# 查看當前后臺運行的命令
# 有兩個命令可以用,jobs和ps,區(qū)別是jobs用于查看當前終端后臺運行的任務,換了終端就看不到了。而ps命令用于查看瞬間進程的動態(tài),可以看到別的終端運行的后臺進程。
# 1.jobs命令可以查看當前終端中運行的程序,如果你運行程序后關閉終端在重新開啟終端jobs就查看不到了。
# 這里我們把jobs命令搭配-l使用可顯示當前終端所有任務的PID,例如終端輸入命令jobs -l 顯示如下:
[7]+ 11807 Running nohup /root/linux_arm/ding -config=/root/linux_arm/ding.cfg -log=stdout -log-level=INFO -proto=http -subdomain=tv 80 > /root/linux_arm/1.txt 2> 1 & (wd: /)
root@wky:~/linux_arm#
# 這里的11807是這個任務的PID,Running表示 進程在運行中,在后面跟的就是進程的命令。可以很清楚的看到這個進程就是穿透進程。
# 我們可以使用kill -pid命令,例如:kill 11807 結束這個進程,如下:
root@wky:~/linux_arm# kill 11807
root@wky:~/linux_arm# jobs -l
[7]+ 11807 Terminated nohup /root/linux_arm/ding -config=/root/linux_arm/ding.cfg -log=stdout -log-level=INFO -proto=http -subdomain=tv 80 > /root/linux_arm/1.txt 2> 1 (wd: /)
root@wky:~/linux_arm#
# 可以看到 11807后面的Running 變成了 Terminated(終止),表示這個進程被終止了,也就是說現(xiàn)在穿透實效了或者說穿透關閉了。
# 2 .ps命令查看當前的所有進程,簡單來說當jobs查看不到你想要找的進程的時候可以使用這個命令。
# ps -ef來查看進程,這里跟jobs很像就不演示了。