编辑
2024-10-08
计算机技术
00
请注意,本文编写于 43 天前,最后修改于 43 天前,其中某些信息可能已经过时。

目录

修改网络配置
开启内核转发
查看当前是已经否开启内核转发
修改内核配置文件
iptables添加转发规则

当A(公网)、B(私网)两个网络互不相通,且B网络里面的设备希望可以访问到A网络,则需要使用路由器来实现B网络访问A网络。

修改网络配置

用来作为路由器的虚拟机至少需要两块网卡,其中一块网卡需要配置A网络的IP地址,并且能正常访问A网络。另外一张网卡则需要配置成为B网络的网关。

示例

配置 /etc/sysconfig/network-scripts/ifcfg-eth0 里面的 IPADDR、GATEWAY、DNS等,必须保证可以正常访问A网络

配置 /etc/sysconfig/network-scripts/ifcfg-eth1 里面的 IPADDR、NETMASK等,这个范围所覆盖的IP将来可以访问A网络。其中,IPADDR将来会成为B网络的网关

修改完成后,执行命令systemctl restart network

开启内核转发

查看当前是已经否开启内核转发

执行命令:sysctl -a | grep ipv4 | grep forward

相关信息

sysctl -a的作用是显示所有的内核参数
| grep ipv4 | grep forward过滤关键词
结果中会出现net.ipv4.ip_forward = 0或者net.ipv4.ip_forward = 1

修改内核配置文件

如果上一步的结果出现的是net.ipv4.ip_forward = 0,则表示没有开启。
执行命令:vim /etc/sysctl.conf
追加一行 net.ipv4.ip_forward = 1,保存后退出
然后执行命令sysctl -p,出现net.ipv4.ip_forward = 1,则表示开启成功

相关信息

/etc/sysctl.conf用于配置Linux系统内核参数,这些参数可以影响系统的各种行为,包括网络设置、进程控制、内存管理等
sysctl -p的作用是使修改立即生效

iptables添加转发规则

执行命令:iptables -F
再执行命令:iptables -t nat -F
然后执行命令:iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -j MASQUERADE
这里172.16.1.0/24表示来B网络的IP段,可根据实际的IP段修改

相关信息

iptables -F作用是清空filter表中的规则,不会清空nat
iptables -t nat -F的作用是清空nat表中的规则
iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -j MASQUERADE配置了一个NAT规则,-t nat表示操作nat表。-A POSTROUTING表示在POSTROUTING链上追加一条规则,POSTROUTING链用于在数据包离开本地网络后进行处理。-s 172.16.1.0/24匹配的数据包源地址。-j MASQUERADE表示对符合条件的数据包进行地址伪装。整条规则的作用是对来自172.16.1.0/24网段的数据包在离开本地网络时进行伪装(也就是离开B网络时进行伪装),使其看起来是来自网关设备IP的数据包

本文作者:枣子

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!