假设一台机器的公网IP为1.2.3.4,连接tailscale的地址为100.124.8.48,tailscale内网中有其他机器配置了路由转发到192.168.1.0/24

现在需要通过1.2.3.4:3389去访问192.168.1.107:3389,命令如下

1.开启ipforward
vim /etc/sysctl.conf
修改以下字段
net.ipv4.ip_forward = 1
sysctl -p /etc/sysctl.conf
2.配置iptables

iptables -t nat -A PREROUTING -p tcp --dport 3389 -j DNAT --to-destination 192.168.1.107:3389
iptables -t nat -A PREROUTING -p udp --dport 3389 -j DNAT --to-destination 192.168.1.107:3389
iptables -A FORWARD -d 192.168.1.107 -p tcp --dport 3389 -j ACCEPT
iptables -A FORWARD -d 192.168.1.107 -p udp --dport 3389 -j ACCEPT
iptables -t nat -A POSTROUTING -d 192.168.1.107 -p tcp --dport 3389 -j SNAT --to 100.124.8.48
iptables -t nat -A POSTROUTING -d 192.168.1.107 -p udp --dport 3389 -j SNAT --to 100.124.8.48