想让内网服务器通过拥有公网ip的服务器上网?那你一定要看这个!
程序员文章站
2022-06-02 20:14:01
...
在云平台或者虚拟软件中,只有一个网卡/公网ip,导致在同一内网下的其他服务器无法连接外网,是不是很头疼呢?不要急,我们按照下面的步骤操作,即可让它们都能上网啦!
-
查看本机ip
[[email protected] ~]# ip a 1: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether fa:16:3e:00:64:66 brd ff:ff:ff:ff:ff:ff inet 192.168.0.11/24 brd 192.168.0.255 scope global noprefixroute dynamic eth0 valid_lft 56170sec preferred_lft 56170sec inet6 fe80::f816:3eff:fe00:6466/64 scope link valid_lft forever preferred_lft forever
-
开启端口转发(能连外网那台)
默认是关闭的,数值为0,变成1开启转发echo 1 > /proc/sys/net/ipv4/ip_forward
-
更改iptables策略
iptables -F ##清空防火墙策略 iptables -P input accept ##把预设的政策设定为 ACCEPT iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT iptables -t nat -APOSTROUTING -s 192.168.0.0/24 -j MASQUERADE ##里面的192.168.0.0/24表示所在网段
-
其他服务器做路由指向本网段
- 查看本地路由表
route -n[[email protected] ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0 169.254.169.254 192.168.0.254 255.255.255.255 UGH 100 0 0 eth0 192.168.0.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
从路由中可以看到指向的是192.168.0.1的网段。 我们要把路由指向刚才做路由转发的服务器
- 查看本地路由表
-
删除默认指向的路由,增加指向开启路由转发的服务器地址
[[email protected] ~]# route del -net 0.0.0.0 gw 192.168.0.11 [[email protected] ~]# route add -net 0.0.0.0 gw 192.168.0.11
再试试,是不是就可以上网了呢!
[[email protected] ~]# ping www.baidu.com
PING www.a.shifen.com (61.135.169.125) 56(84) bytes of data.
64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=1 ttl=48 time=4.13 ms
64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=2 ttl=48 time=4.06 ms
64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=3 ttl=48 time=3.96 ms