openwrt路由器的nat就是iptable的nat啊, 新版的openwrt改用了nftable
我一直这么用了很多年了, 没有任何问题, 什么协议都通; 第二条命令可以不加, 但会导致少数网站打不开,
iptables -t nat -A POSTROUTING -o ${dev} -j MASQUERADE
iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
再回到你的问题, 不管什么协议 iptables 都会映射一个端口在外网接口上, 不然数据回不来.
TCP 是单点对单点通信, SNAT后不会有什么不同.
UDP 可能是单点对多点通信, 再加上linux是symmetric nat, 从而导致只有数据发送方向上的地址才能把数据传回来, 其它地址想通过这个映射的地址把数据送回去是不行的.
但有些路由器, 比如某些版本的vxworks路由器, 它是full nat的, 导致其它地址也能通过那个映射地址端口把数据送进局域网里的机器.
【 在 leeyc 的大作中提到: 】
: 一直以为iptables的nat跟路由器功能一样呢
: 最近发现,貌似还是差很多呀,先不说性能,只是说功能
: 做SNAT后,内网上网是没问题,但是,udp协议貌似是不行
: ...................
--
FROM 167.99.245.*