由于各运营商开始限速，ipv6也没那么好用了，而且有时v4是必须的。 发现了 natter 这么好的项目， 能够直接使用公网v4和随机端口的组合。首先利用命令natter --check检查自己网络是否支持，是否需要开启dmz，以保证机器识别为fullcone（NAT1）> NatterCheck v2.2.1 Checking TCP NAT... [ OK ] ... NAT Type: 1 Checking UDP NAT... [ OK ] ... NAT Type: 1参考 https://github.com/MikeWang000000/Natter/blob/master/docs/script.md 上的脚本进行简单修改，主要实现端口通知，ip变更则通过ddns实现，不同的实现为了安全性考虑， 避免同时出现域名和端口。不考虑ip4p和srv是因为支持的客户端太少了。通过 https://dynv6.com/docs/apis 的ddns更新ip，再利用shell email邮件通知端口，由于通过了手机邮箱，所以还能及时通过短信收到端口变化提示，需要时仅需修改客户端应用端口，而域名ip自动解析。最小化修改使用。#!/bin/sh # Natter notification script arguments # https://github.com/MikeWang000000/Natter/blob/master/docs/script.md # protocol="$1"; private_ip="$2"; private_port="$3"; public_ip="$4"; public_port="$5" DOMAIN='xx.dynv6.com' TOKEN='xxxxxxxxxxx' while true; do #ddns通过dynv6的api实现 curl \ "http://ipv4.dynv6.com/api/update?hostname=$DOMAIN&ipv4=auto&token=$TOKEN" \ > /dev/null 2> /dev/null #邮件通知端口，安装sendemail实现 sendemail -f "发件人@qq.cn" \ -t "收件@139.com" \ -s "smtp.qq.cn:587" \ -u "natter $5" \ -m "private: $2:$3 public: $5" \ -xu "发件人@qq.cn" \ -xp "app密码code" \ -o tls=no if [ $? -eq 0 ]; then break fi done运行测试一段时间看看多久会自动变化ip端口。 nohup natter -b 8080 -e dyn.sh > log.natter 2>&1 &