windows设备2通过linux设备1上网
支持tun
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o wwan0 -j SNAT --to-source 10.0.xx.xx
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o tun0 -j SNAT --to-source 10.1.xx.xx
注意不要直接在设备1里设置
route add default gw 192.168.10.xx
设备1另一种写法
# 1. 清空 nat 表现有规则(避免冲突)
sudo iptables -t nat -F
# 2. 配置 NAT 地址伪装:从 wwan0 接口出去的数据包,源 IP 伪装为 wwan0 的 IP(关键步骤)
sudo iptables -t nat -A POSTROUTING -o wwan0 -j MASQUERADE
# 3. 允许从 FE0 进入、从 wwan0 出去的数据包转发(内部设备访问公网)
sudo iptables -A FORWARD -i FE0 -o wwan0 -j ACCEPT
# 4. 允许从 wwan0 进入、从 FE0 出去的响应数据包转发(公网响应返回内部)
sudo iptables -A FORWARD -i wwan0 -o FE0 -m state --state RELATED,ESTABLISHED -j ACCEPT
# 增加192.168.0.xxx转发
# 1. 允许从内部接口(如 FE0)到 tun0 接口、目标地址为 192.168.0.xxx 的数据包转发
sudo iptables -A FORWARD -i FE0 -o tun0 -d 192.168.0.xxx -j ACCEPT
# 2. 允许从 tun0 接口到内部接口(如 FE0)、源地址为 192.168.0.174 的响应数据包转发
#(仅允许已建立的连接或相关连接,保证安全性)
sudo iptables -A FORWARD -i tun0 -o FE0 -s 192.168.0.xxx -m state --state RELATED,ESTABLISHED -j ACCEPT
# 3. (可选)如果 tun0 接口需要对访问 192.168.0.xxx 的流量进行地址伪装
#(例如 tun0 要求源 IP 与自身接口 IP 匹配时)
sudo iptables -t nat -A POSTROUTING -o tun0 -d 192.168.0.xxx -j MASQUERADE
在windows下设置(或者断开无线网络,以免无线网络覆盖路由)
route delete 192.xx.xx.xx
route delete 10.xx.xx.xx
route add 192.xx.xx.xx mask 255.255.255.255 192.168.10.240 metric 1
route add 10.xx.xx.xx mask 255.255.255.255 192.168.10.240 metric 1
本博客是个人工作中记录,更深层次的问题可以提供有偿技术支持。
另外建了几个QQ技术群:
2、全栈技术群:616945527
2、硬件嵌入式开发: 75764412
3、Go语言交流群:9924600
闲置域名WWW.EXAI.CN (超级人工智能)出售。
另外建了几个QQ技术群:
2、全栈技术群:616945527
2、硬件嵌入式开发: 75764412
3、Go语言交流群:9924600
闲置域名WWW.EXAI.CN (超级人工智能)出售。

浙公网安备 33010602011771号