前言

钉钉提供的这个内网穿透原本是为了开发者在临时使用时提供了一个公网代理服务的公网IP,目的是方便开发测试。

之前写过一个在win上使用钉钉内网穿透的内网有兴趣的可以去看下我之前的文章钉钉内网穿透,不过大多数都是运行在Linux系统上的,并且Linux通常比win性能强功耗低,那么这次就来说说钉钉内网穿透的Linux用法!

一、启动内网穿透

首先需要下载钉钉内网穿透的程序,可以使用https://github.com/mzlogin/ding-tunnel.git来下载

如果感觉太慢可以下载本站提供的:钉钉内网穿透工具

我把钉钉的脚本程序和配置文件放在了一个名叫ding的文件夹下,并且把这个文件夹放在了/mnt目录。

./ding -config=./ding.cfg -subdomain=lemon 80

注意:启动命令的子域参数有可能被别人占用,尽量不要用字符,可以用自己公司名的拼音。如果遇到被占用换一个即可

但是官方给的命令只适合测试使用,具体来说就是你不能关闭shell窗口不然穿透就会停止。

参数说明
config内网穿透的配置文件,按命令照示例固定为钉钉提供的./ding.cfg,无需修改。
subdomain您需要使用的域名前缀,该前缀将会匹配到“vaiwan.com”前面,例如你的 subdomain 是 lemon,启动工具后会将lemon.vaiwan.com 映射到本地。
端口您需要代理的本地服务 http-server 端口,例如你本地端口为 80 等。

启动完客户端后,你可以通过域名 http://lemon.vaiwan.com 访问都会映射到 http://127.0.0.1:80上。

在钉钉目录下使用命令./ding --help可以查看命令帮助文档,当然这并没有什么用,看一下用得到的命令吧!

#命令如下:
#映射本机
/mnt/ding/ding -config=/mnt/ding/ding.cfg -log=stdout -log-level=INFO -proto=http -subdomain=lemon 80
#映射局域网内其他设备
nohup /mnt/ding/ding -config=/mnt/ding/ding.cfg -log=stdout -log-level=INFO -proto=http -subdomain=kodcloud 192.168.31.102:8808 >/mnt/ding/1.txt 2>1 &

#解释下:#/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 二级域名为lemon 本地端口为80
# nohup命令可以在关闭终端后不停止命令,就是不间断执行nohup后的命令
# & 实现后台运行
#修改的地方只是把以前的端口改成了具体的局域网内你要穿透的ip地址加端口号,这里的192.168.31.102:8808就是你要穿透的应用ip地址,:8808是你要穿透应用的本地端口号。

二、停止穿透

在不关机的情况下停止穿透的可能性很小,但是保不齐用得到。所以这里就简单的说下怎么样停止后台运行的穿透进程,这里需要认识两个命令:

命令:

# 查看当前后台运行的命令
# 有两个命令可以用,jobs和ps,区别是jobs用于查看当前终端后台运行的任务,换了终端就看不到了。而ps命令用于查看瞬间进程的动态,可以看到别的终端运行的后台进程。
# 1.jobs命令可以查看当前终端中运行的程序,如果你运行程序后关闭终端在重新开启终端jobs就查看不到了。
# 这里我们把jobs命令搭配-l使用可显示当前终端所有任务的PID,例如终端输入命令jobs -l 显示如下:
[2]+ 19877 Running                 nohup /mnt/ding/ding -config=/mnt/ding/ding.cfg -log=stdout -log-level=INFO -proto=http -subdomain=kodcloud 192.168.31.102:8808 > /mnt/ding/1.txt 2> 1 &
# 这里的19877是这个任务的PID,Running表示 进程在运行中,在后面跟的就是进程的命令。可以很清楚的看到这个进程就是穿透进程。
# 我们可以使用kill -pid命令,例如:kill 19877 结束这个进程,如下:
kill 19877
[2]+ 19877  Terminated              nohup /mnt/ding/ding -config=/mnt/ding/ding.cfg -log=stdout -log-level=INFO -proto=http -subdomain=kodcloud 192.168.31.102:8808 > /mnt/ding/1.txt 2> 1
# 可以看到 19877后面的Running 变成了 Terminated(终止),表示这个进程被终止了,也就是说现在穿透实效了或者说穿透关闭了。# 2 .ps命令查看当前的所有进程,简单来说当jobs查看不到你想要找的进程的时候可以使用这个命令。
# ps -ef来查看进程,这里跟jobs很像就不演示了。
如果觉得我的文章对你有用,可以赞助本站,使本站更好的发展