iptables-nat表的应用

本文介绍如何通过A机器辅助B机器连接外网并进行端口映射的方法。首先打开A机器的路由转发功能,并通过iptables设置NAT规则实现B机器上网。接着,对进入A机器的特定端口的请求进行DNAT操作,将其转发到B机器的相应端口,同时设置SNAT规则确保响应包正确返回。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境:

A机器两块网卡ens33(192.168.109.130)、ens37(192.168.100.1),ens33可以上外网,ens37仅仅是内部网络,B机器只有ens37(192.168.100.100),和A机器ens37可以通信互联。

A机器:

e1e0dee810165c74b3e2ecc7e75c422ba52.jpg

ifconfig配置IP,临时生效:

ifconfig ens37 192.168.100.1/24

6e885405268c10fbc95dcf008e0eed809b2.jpg

B机器:

d57bbe2c29c48722a676a47d83f2a9d6183.jpg

配置网卡:

6f3e0d9e7c654b76b770f9ce741690617c3.jpg

A机器测试:

3b46fae99700766c3f930ad56780b252fec.jpg

2b3b6ab5135ab3c6fc78d9e9451f9f7993e.jpg

B机器测试:

ed0665906cdb48f0d1de2e3f6c0c0c52a4c.jpg

d0ef531ab92c683f5ee5b484922be8f0c28.jpg
 

主机测试:

297f5d3b2a418a9edb1b3cf6567a409463e.jpg

需求1:

 可以让B机器连接外网

操作:
 A机器上打开路由转发 echo "1">/proc/sys/net/ipv4/ip_forward

1aa0e620e8bd635cc1c2ce102043419fd1a.jpg
 A上执行 iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE 

a3f7ae698d4b6f7b6ad850ec193c60dbe62.jpg
 B上设置网关为192.168.100.1

c9ee0793afa254d87cba25ebfc28833bb96.jpg

测试IP:

b0c1195a9db31d10277fba5760eb95560b3.jpg

设置DNS

vim /etc/resolv.conf

7b6708a199c3abfedd9803a7fef89145798.jpg

测试外网:

c8a0c8eca08696b1db2dc9fee0d29ccce31.jpg

aa2a498235af2284c3a84fe10c002c5535d.jpg

测试主机:

9f380f759c3cd2a716e512ed4580c91d61d.jpg
 需求2(端口映射):

C机器只能和A通信,让C机器可以直接连通B机器的22端口

操作:
 A上打开路由转发echo "1">/ proc/sys/net/ipv4/ip_forward

进去的包的操作:
 A上执行iptables -t nat -A PREROUTING -d 192.168.109.130 -p tcp --dport 1122 -j DNAT --to 192.168.100.100:22

先清空规则,在添加:

b32d84750954375977de990dde6d4b9c0fd.jpg

a5d2c737747a6d257b40e903fe4f6cd9b44.jpg

 回来的包的操作:
 A上执行iptables -t nat -A POSTROUTING -s 192.168.100.100 -j SNAT --to 192.168.109.130

199c3f492296369323ee0c8c1a01e14f6e2.jpg
 B上设置网关为192.168.100.1

6b0debe917dd69bd31026ba88cdbfbc959b.jpg

测试:

e3314227520ec5ccfdd2ffb8740e55b4215.jpg

8ae24517cfd49f178eb46a21f5452e4f253.jpg

e861efa167051329f360f7653789e1b2693.jpg

7cf7c833388398cb83a2277e7a909413a85.jpg

ce86f705674577fb58c5953c2be3b7cfbfc.jpg

e8c886aecdc8f822a6433ecd62129d3568d.jpg

到这端口映射就做好了,还能ping通外网。

转载于:https://my.oschina.net/ccLlinux/blog/1847176

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值