我有一个在Windows2008 R2服务器上运行的OpenVPN客户端,通过这个Windows 2008,我试图对这台win2008s真实networking后面的机器做静态NAT。 这是我2008年服务器的configuration;
在2008服务器上输出我的NATconfiguration
# ---------------------------------- # NAT configuration # ---------------------------------- pushd routing ip nat uninstall install set global tcptimeoutmins=1440 udptimeoutmins=1 loglevel=ERROR # #NAT Configuration For Interface Local Area Connection 2 # add interface name="Local Area Connection 2" mode=FULL add addressrange name="Local Area Connection 2" start=10.9.0.24 end=10.9.0.31 mask=255.255.255.248 add addressmapping name="Local Area Connection 2" public=10.9.0.28 private=192.168.10.59 inboundsessions=enable # #NAT Configuration For Interface Local Area Connection # add interface name="Local Area Connection" mode=PRIVATE popd
当我尝试从openvpn服务器ping 10.9.0.28或连接到它的tcp端口时,我看到目标nat在windows 2008服务器上完成,我的数据包发送到10.9.0.28,但与源ip 10.9.0.1。
19:54:25.046131 IP 10.9.0.1.43109 > 192.168.10.59.2000: Flags [S], seq 870055875, win 5840, options [mss 1350,sackOK,TS val 8948005 ecr 0,nop,wscale 7], length 0 19:54:25.046198 IP 192.168.10.59.2000 > 10.9.0.1.43109: Flags [R.], seq 0, ack 870055876, win 0, length 0 19:54:28.044561 IP 10.9.0.1.43109 > 192.168.10.59.2000: Flags [S], seq 870055875, win 5840, options [mss 1350,sackOK,TS val 8951005 ecr 0,nop,wscale 7], length 0
可以肯定的是,返回的数据包并没有find他们的方式发起人then.I也试图不直接映射主机,但服务/端口转换,但这也没有工作。 在我的linux系统中,当然我可以在使用iptables的时候更改源IP地址,但是对于非常相同的情况,我无法在Windows上find这个方法。
那么,你有什么想法如何改变源IP,而与Windows服务器做NAT?
我在这里先向您的帮助表示感谢
goktan
你可以使用netsh来做到这一点:
netsh routing ip nat install netsh routing ip nat add interface "Local sth or Ethernet etc" AddressOnly netsh routing ip nat add addressrange "Local sth or Ethernet etc" start=10.9.0.24 end=10.9.0.31 255.255.255.248 netsh routing ip nat add addressmapping "Local sth or Ethernet etc" public=<what_you_want_the_ip_to_look_like> <what_the_ip_actually_is> inboundsessions=disable
最后一个选项是使用(或不如我们这里)在相反的方向相同的地址映射。 如果你不知道你在做什么,这可能会打破你的互联网连接。