开启内核路由转发使内网机器通过Gnu/Linux上网

问题描述

内网客户机器通过一台Gnu/Linux服务器访问互联网。服务器的eth0网卡可以访问互联网,eth1网卡与内网相连。客户端要通过该服务端访问互联网。

实验环境

服务器:
网卡IP子网掩码网关
eth0192.168.16.220255.255.255.0192.168.16.1
eth1192.168.15.222255.255.255.0192.168.15.1

客户端:

网卡IP子网掩码网关
eth0192.168.15.111255.255.255.0192.168.15.222

服务器与客户端的配置

服务器端的配置

查看服务器上的路由表信息,

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.16.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.15.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1
169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth1
0.0.0.0         192.168.16.1    0.0.0.0         UG    0      0        0 eth0

开启服务器内核的路由转发功能,使其具有路由功能

# echo 1 > /proc/sys/net/ipv4/ip_forward
# 或者使用下面的方式
# sysctl -w net.ipv4.ip_forward=1
# sysctl -p

最好修改/etc/sysctl.conf配置文件,使其配置永久生效。

配置NAT规则

经过第二部分配置后,虽然可以ping相关的IP地址,但是内网主机还是无法上网。问题在于内网主机的IP地址是无法在公网上路由的。因此,需要转换成Linux系统主机可以上网的IP(注:这里我们之所以不说是公网IP,是因为Linux系统可以直接上外网的IP同样是内网IP。但是该内网IP(192.168.16.220)已经通过一些机制,实际上同样是NAT的方式,可以访问外网了,因此我们只需将Host A的IP转换成Linux系统eth0接口的IP即可)。

以下是我们配置的NAT规则:

# iptables -t nat -A POSTROUTING -s 192.168.15.0/24 -o eth0 -j SNAT --to-source 192.168.16.220
# iptables -A FORWARD -i eth1 -j ACCEPT

客户端的配置

客户端的设置比较简单,客户端的网关IP地址为服务器内网IP地址,DNS与服务器的一样即可。

测试

如果客户端可以ping的通www.baidu.com,则说明内网可以访问互联网。

转载于:https://blog.51cto.com/lavenliu/2151256

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值