当前位置: 技术问答>linux和unix
请教iptables公网ip映射到私网的https服务器
来源: 互联网 发布时间:2017-05-23
本文导语: 本人小白,碰到一个关于iptables的问题,公网ip映射到私网的https服务器,请大神指导一下,多谢啦 资源:linux主机有两张网卡,一个配置了公网ip 68.251.159.120 ,一个配置了私网ip 192.168.1.20 需求:现在想通过这个Lin...
本人小白,碰到一个关于iptables的问题,公网ip映射到私网的https服务器,请大神指导一下,多谢啦
资源:linux主机有两张网卡,一个配置了公网ip 68.251.159.120 ,一个配置了私网ip 192.168.1.20
需求:现在想通过这个Linux主机映射到私网的https服务器192.168.1.16,同时不改变其它的规则
今天没在公司,通过在网上找的的一些信息,远程到服务器上,输了两条命令上去,关掉putty之后才发现ping不通了。
添加前打印出来的信息:
vAG-2:~ # iptables -L -n
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp spt:123
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:1234
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp spt:1234
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:989
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:1235
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp spt:1235
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp spt:1236
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp spt:1237
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:6772
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp spt:53
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:53
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTAB LISHED
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:6772
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:8443
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spts:5900:5999
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:6772
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:8183
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:8548
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:28511
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:4000
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443
Chain FORWARD (policy DROP)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
vAG-2:~ #
添加的两条命令:
iptables -t nat -A PREROUTING -d 68.251.159.120 -j DNAT --to-destination 192.168.1.16
iptables -t nat -A POSTROUTING -s 192.168.1.16 -j SNAT --to-source 68.251.159.120
请大家指导一下,iptables没接触过,所有命令和参数都不熟,请回帖时也稍作一下说明
我在网上找信息的时候发现,每个人给出的参考都是先iptables -F清掉原有的,那应该不是常规做法吧,如果原来有很多条是有用的,清掉了只添加自己的那一条,会出其它问题的吧?
资源:linux主机有两张网卡,一个配置了公网ip 68.251.159.120 ,一个配置了私网ip 192.168.1.20
需求:现在想通过这个Linux主机映射到私网的https服务器192.168.1.16,同时不改变其它的规则
今天没在公司,通过在网上找的的一些信息,远程到服务器上,输了两条命令上去,关掉putty之后才发现ping不通了。
添加前打印出来的信息:
vAG-2:~ # iptables -L -n
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp spt:123
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:1234
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp spt:1234
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:989
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:1235
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp spt:1235
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp spt:1236
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp spt:1237
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:6772
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp spt:53
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:53
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTAB LISHED
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:6772
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:8443
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spts:5900:5999
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:6772
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:8183
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:8548
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:28511
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:4000
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443
Chain FORWARD (policy DROP)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
vAG-2:~ #
添加的两条命令:
iptables -t nat -A PREROUTING -d 68.251.159.120 -j DNAT --to-destination 192.168.1.16
iptables -t nat -A POSTROUTING -s 192.168.1.16 -j SNAT --to-source 68.251.159.120
请大家指导一下,iptables没接触过,所有命令和参数都不熟,请回帖时也稍作一下说明
我在网上找信息的时候发现,每个人给出的参考都是先iptables -F清掉原有的,那应该不是常规做法吧,如果原来有很多条是有用的,清掉了只添加自己的那一条,会出其它问题的吧?
|
iptables -t nat -A PREROUTING -d 68.251.159.120 -j DNAT --to-destination 192.168.1.16
这条命令会把来自外网的初始化连接报文(包括ICMP报文)通过NAT转发到192.168.1.16,也就是说来自外网ping报文最终抵达的是192.168.1.16这台内网服务器。之所以ping不通怀疑是192.168.1.16内网服务器出于安全原因禁用了ICMP。
此外第二条语句没必要加上:
iptables -t nat -A POSTROUTING -s 192.168.1.16 -j SNAT --to-source 68.251.159.120
严格点的做法应该是这样:
iptables -t nat -A PREROUTING -p tcp --dport 443 -d 68.251.159.120 -j DNAT --to-destination 192.168.1.16
这条命令会把来自外网的初始化连接报文(包括ICMP报文)通过NAT转发到192.168.1.16,也就是说来自外网ping报文最终抵达的是192.168.1.16这台内网服务器。之所以ping不通怀疑是192.168.1.16内网服务器出于安全原因禁用了ICMP。
此外第二条语句没必要加上:
iptables -t nat -A POSTROUTING -s 192.168.1.16 -j SNAT --to-source 68.251.159.120
严格点的做法应该是这样:
iptables -t nat -A PREROUTING -p tcp --dport 443 -d 68.251.159.120 -j DNAT --to-destination 192.168.1.16