之前出过动态域名解析做穿透,但是这个需要有动态公网ip,有好多家里的宽带都是"大内网"。虽然我们还出了一期不需要公网ip的内网穿透,可是没有公网ip的免费内网穿透一般都不稳定,所以今天跟大家分享一个新的内网穿透工具做备用,亲测免费好用(不建议商业用途)。
钉钉提供的这个内网穿透原本是为了开发者在临时使用时提供了一个公网代理服务的公网IP,目的是方便开发测试。
首先需要下载钉钉内网穿透的程序,可以使用https://github.com/mzlogin/ding-tunnel.git来下载,(考虑到github下载速度感人,我已经下载了压缩包放在了QQ群里了,需要自取)里面包含了linuxlinux_armmac_64windows_64的程序,很显然我们的玩客云是ARM核心,所以我们需要这个文件包。拿到文件包后,我把钉钉的脚本程序和配置文件放在了一个名叫linux_arm的文件夹下,并且把这个文件夹放在了/root目录。
# 先进入到linux_arm目录 cd /root/linux_arm
# 在授权ding程序777权限 chmod 777 ding
# 执行命令 ./ding -config=./ding.cfg -subdomain=域名前缀 端口
./ding -config=./ding.cfg -subdomain=tv 80
#如下图就可以使用域名http://tv.vaiwan.cn来访问网站了,当然在这之前你要把这个域名绑定在你的网站上。
注意:启动命令的子域参数有可能被别人占用,尽量不要用字符,可以用自己公司名的拼音。如果遇到被占用换一个即可
但是官方给的命令只适合测试使用,具体来说就是你不能关闭shell窗口不然穿透就会停止。
参数 |
说明 |
config |
内网穿透的配置文件,按命令照示例固定为钉钉提供的./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可以查看命令帮助文档,当然这并没有什么卵用,因为都是英文我看不懂!!!所以下面就玩客云环境谈下实用得命令吧!
#命令如下:
/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这个是参数congfig的配置,表示congfig的位置。
#-log=stdout这里指明了日志格式为stdout
#-log-level=INFO指明日志级别为INFO
#-proto=http仅用http
#-subdomain=tv 80 二级域名为tv 本地端口为80
不难发现现在这个界面就跟之前执行的命令界面不同,是的这个界面我们可以使用nohup、&这两个命令来实现后台运行,关掉终端不会停止运行。
# nohup命令可以在关闭终端后不停止命令,就是不间断执行nohup后的命令
# & 实现后台运行
因此我们可以对命令/root/linux_arm/ding -config=/root/linux_arm/ding.cfg -log=stdout -log-level=INFO -proto=http -subdomain=tv 80做一些改变,让我们在关闭shell窗口后内网穿透依然有效。
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里
# 如下图该穿透就已经生效了,其中界面上显示的[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 &
# 修改的地方只是把以前的端口改成了具体的局域网内你要穿透的ip地址加端口号,这里的192.168.0.100就是你要穿透的应用ip地址,:80是你要穿透应用的本地端口号。
在不关机玩客云的情况下停止穿透的可能性很小,但是保不齐用得到。所以这里就简单的说下怎么样停止后台运行的穿透进程,这里需要认识两个命令:
# 查看当前后台运行的命令
# 有两个命令可以用,jobs和ps,区别是jobs用于查看当前终端后台运行的任务,换了终端就看不到了。而ps命令用于查看瞬间进程的动态,可以看到别的终端运行的后台进程。
# 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(终止),表示这个进程被终止了,也就是说现在穿透实效了或者说穿透关闭了。
# 2 .ps命令查看当前的所有进程,简单来说当jobs查看不到你想要找的进程的时候可以使用这个命令。
# ps -ef来查看进程,这里跟jobs很像就不演示了。