中国移动stun穿透搭建教程
准备工作
在正式进入教程之前,大家需要对路由器进行设置。
1.开启full cone,其他设备下大家查找对应的教程
ros对应的开启命令如下
/ip firewall nat
add action=endpoint-independent-nat chain=srcnat out-interface=pppoe-out1 protocol=udp
/ip firewall nat
add action=endpoint-independent-nat chain=dstnat in-interface=pppoe-out1 protocol=udp
输入完成后,在ros中,将相关命令放到伪装条目的上方,
开启后,利用nat检测工具,检测一下,就可以看到对应的结果。
接着,进入我们的路由器,新开一个端口转发。以我内网的主页服务为例
将51920转发至192.168.6.16 的80端口为例
/ip firewall nat add action=dst-nat chain=dstnat protocol=tcp dst-port=51920 to-addresses=192.168.6.16 to-ports=80
在ros中直接输入命令,即可设置完成
打开我们的pve控制台,克隆一个lxc机器。
将我们资源包中的程序核心上传至home文件夹
输入以下命令
cd /home && chmod u+x natmap && mv natmap /usr/local/bin/
然后输入
natmap -4 -s stunserver.stunprotocol.org -h qq.com -b 51920
当我们看到对应的提示后,第一个字段是我们的公网ip,第二个字段是获取到的端口号。此时,端口已经映射成功。
我这里用手机的网络简单的测试一下,可以看到,已经可以打开,证明我们的网络是可以使用相关服务的。
接着,我们来制作一个开机自启服务
touch /etc/systemd/system/natmap1.service
[Unit]
Description=NAT Mapping Service
After=network.target
[Service]
ExecStart=/usr/local/bin/natmap -4 -s stunserver.stunprotocol.org -h qq.com -b 51920
Restart=always
SyslogIdentifier=natmap
[Install]
WantedBy=multi-user.target
制作完成后,通过以下命令来启动它
sudo systemctl daemon-reload
sudo systemctl enable natmap1.service
sudo systemctl start natmap1.service
至此,我们的服务已经制作好了,但是我们也不能每次查看日志的方式,看我们的ip和端口是多少,这时候,我们通过机器人来通知我们,当ip与端口进行更换的时候,提醒我们,最新的ip和端口是多少。
这里我们采用微信机器人的方式进行通知
我们在home文件夹下,新建一个名称为natmap1-wx.sh的脚本文件,内容包含以下信息
#!/bin/bash
address=${1}
PORT=${2}
# 微信机器人Webhook URL
webhook_url="https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=YOUR_WEBHOOK_KEY"
# 要发送的消息内容
message="最新的地址为${1}:${2}"
# 发送通知消息
curl -H "Content-Type: application/json" -X POST -d "{\"msgtype\": \"text\", \"text\": {\"content\": \"$message\"}}" $webhook_url
创建完成后,我们赋予它可执行权限
chmod +x /home/natmap1-wx.sh
修改第一步中创建的启动文件内容为
[Unit]
Description=NAT Mapping Service
After=network.target
[Service]
ExecStart=/usr/local/bin/natmap -4 -s stunserver.stunprotocol.org -h qq.com -b 6010 -e /home/natmap1-wx.sh
Restart=always
SyslogIdentifier=natmap
[Install]
WantedBy=multi-user.target
这时候,我们重启一下机器,就可以在微信中接到相关的通知了。
以上就是简单的一个tcp端口映射,部署完成后,就不用再去管理了,机器重新拨号后,该服务也会获取到最新的ip和端口的。
接着我们来进行 udp的端口映射
接着,我们来制作一个开机自启服务
touch /etc/systemd/system/natmap2.service
[Unit]
Description=NAT Mapping Service
After=network.target
[Service]
ExecStart=/usr/local/bin/natmap -4 -u stunserver.stunprotocol.org -h qq.com -b 6023
Restart=always
SyslogIdentifier=natmap
[Install]
WantedBy=multi-user.target
制作完成后,通过以下命令来启动它
sudo systemctl daemon-reload && sudo systemctl enable natmap2.service && sudo systemctl start natmap2.service
这里我们采用微信机器人的方式进行通知
我们在home文件夹下,新建一个名称为natmap2-wx.sh的脚本文件,内容包含以下信息
#!/bin/bash
address=${1}
PORT=${2}
# 微信机器人Webhook URL
webhook_url="https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=YOUR_WEBHOOK_KEY"
# 要发送的消息内容
message="最新的地址为${1}:${2}"
# 发送通知消息
curl -H "Content-Type: application/json" -X POST -d "{\"msgtype\": \"text\", \"text\": {\"content\": \"$message\"}}" $webhook_url
创建完成后,我们赋予它可执行权限
chmod +x /home/natmap2-wx.sh
修改第一步中创建的启动文件内容为
[Unit]
Description=NAT Mapping Service
After=network.target
[Service]
ExecStart=/usr/local/bin/natmap -4 -s stunserver.stunprotocol.org -h qq.com -b 6023 -e /home/natmap2-wx.sh
Restart=always
SyslogIdentifier=natmap
[Install]
WantedBy=multi-user.target
制作完成后,通过以下命令来启动它
sudo systemctl daemon-reload && sudo systemctl enable natmap2.service && sudo systemctl start natmap2.service