扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
Q:局域网内的主机的数据包如何通过linux主机传送出去呢?
我们注重客户提出的每个要求,我们充分考虑每一个细节,我们积极的做好做网站、成都做网站服务,我们努力开拓更好的视野,通过不懈的努力,成都创新互联公司赢得了业内的良好声誉,这一切,也不断的激励着我们更好的服务客户。 主要业务:网站建设,网站制作,网站设计,成都微信小程序,网站开发,技术开发实力,DIV+CSS,PHP及ASP,ASP.Net,SQL数据库的技术开发工程师。
1)先经过NAT table的PREROUTING链
2)经路由判断确定这个数据包是否要进入本机,若不进入本机,则下一步
3)再经过Filter table的FORWARD链
4)通过NAT table的POSTROUTING链,最后传送出去
POSTROUTING修改的是原IP ------> SNAT(主要应付内部LAN连接到Internet)
PREROUTING修改的是目标IP ------> DNAT(主要用在内部主机架设可以让Internet访问的服务器)
SNAT语法:
iptables -t nat -A POSTROUTING -s $innet -o $EXTIF -j MASQUERADE
注:$innet 是LAN 网络
$EXTIF 是对外接口
MASQUERADE :将lan IP 伪装成对外接口设备上的IP
iptables -t nat POSTROUTING -o eth0 -j SNAT --to-source x.x.x.x/x.x.x.x-x.x.x.x
(不采用IP伪装)
DNAT语法:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80
-j DNAT --to-destination IP[:port]
-j REDIRECT --to-ports
例子:将要求与80连接的数据包转递到8080这个port
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流