| 2019-02-18
很多情况下,我们往往需要通过对某个端口进行转发(端口映射)实现某些特殊功能,比如堡垒机和负载均衡什么的。iptables是一个Linux下优秀的nat+防火墙工具,关于iptables端口映射如何设置也是很多朋友比较关心的问题。本文小编带大家了解一下如何为设置端口映射以及iptables端口映射设置的问题。
一、用花生壳做端口映射
在内网下载登录花生壳客户端,点击域名列表进入web管理页面;
第三步,点击【内网映射】—【添加映射】,跳出端口映射设置窗口;
第四步,填写端口映射信息。域名为注册花生壳时赠送的免费域名,也可添加其他域名。应用名称自定义,主机即为内网主机IP地址,选择好对外开放的端口,点击确定即可完成信息填写;
第五步,端口映射添加完毕后,即生成一个可供外网访问的地址,端口映射完成;
在外网浏览器内输入该地址,即可访问到内网主机所搭建的服务应用,NAT穿透成功。
二、在路由器上端口映射
这里以TP-Link的端口映射举例,其他品牌路由器请自行研究。
首先确认一下你本机的IP地址以及网关IP地址(一般情况下,网关的默认地址为:192.168.1.1):
点开始-运行(或按徽标键+R),然后输入“cmd”,会打开CMD窗口。再输入"ipconfig",你会在窗口中看到你的本机IP地址。(你使用其他方式查看也行),如下图:
看本机及网关IP地址,本机的IP地址为:192.168.1.100,网关IP地址为192.168.1.1。
然后打开浏览器,输入192.168.1.1,进入路由器的控制面板(如果不知道用户名和密码,一般默认的是admin,admin)。
点击转发规则,虚拟服务器。
在右边窗口,会看到端口映射的列表。
单击添加新条目,服务端口号填写9120-9122(根据你在TwingHotLink中设置的端口填写),IP地址填写你本机的局域网IP地址,例如:192.168.1.100,如下图:
单击保存。
返回列表后,你能看到刚刚添加的端口。
确保状态为生效,此时,端口映射完成。
设我们有一台计算机,有两块网卡,eth0连外网,ip为1.2.3.4;eth1连内网,ip为192.168.0.1.现在需要把发往地址1.2.3.4的81端口的ip包转发到ip地址192.168.0.2的8180端口。
1.iptables-tnat-APREROUTING-d1.2.3.4-ptcp-mtcp--dport81-jDNAT--to-destination192.168.0.2:8180
2.iptables-tnat-APOSTROUTING-s192.168.0.0/255.255.0.0-d192.168.0.2-ptcp-mtcp--dport8180-jSNAT--to-source192.168.0.1
真实的传输过程如下所示:
假设某客户机的ip地址为6.7.8.9,它使用本机的1080端口连接1.2.3.4的81端口,发出的ip包源地址为6.7.8.9,源端口为1080,目的地址为1.2.3.4,目的端口为81.
主机1.2.3.4接收到这个包后,根据nat表的第一条规则,将该ip包的目的地址更该为192.168.0.2,目的端口更该为8180,同时在连接跟踪表中创建一个条目,(可从/proc/net/ip_conntrack文件中看到),然后发送到路由模块,通过查路由表,确定该ip包应发送到eth1接口.在向eth1接口发送该ip包之前,根据nat表的第二条规则,如果该ip包来自同一子网,则将该ip包的源地址更该为192.168.0.1,同时更新该连接跟踪表中的相应条目,然后送到eth1接口发出.
此时连接跟踪表中有一项:
连接进入:src=6.7.8.9dst=1.2.3.4sport=1080dport=81
连接返回:src=192.168.0.2dst=6.7.8.9sport=8180dport=1080
是否使用:use=1
而从192.168.0.2发回的ip包,源端口为8180,目的地址为6.7.8.9,目的端口为1080,主机1.2.3.4的TCP/IP栈接收到该ip包后,由核心查找连接跟踪表中的连接返回栏目中是否有同样源和目的地址和端口的匹配项,找到后,根据条目中的记录将ip包的源地址由192.168.0.2更该为1.2.3.4,源端口由8180更该为81,保持目的端口号1080不变.这样服务器的返回包就可以正确的返回发起连接的客户机,通讯就这样开始.
还有一点,在filter表中还应该允许从eth0连接192.168.0.2地址的8180端口:
iptables-AINPUT-d192.168.0.2-ptcp-mtcp--dport8180-ieth0-jACCEPT
以上就是关于iptables端口映射如何设置的问题了,其实我们会发现并不难。
花生壳是贝锐旗下知名的动态域名解析服务,能将动态IP地址实时与服务器保持交流,绑定固定域名,让用户输入特定域名即可访问某台内网主机,并支持内网穿透,摆脱无公网IP及NAT转发导致无法使用的问题,为中国一代代互联网人解决了众多基础的网络连接问题。