ubuntu服务器无法访问外网的解决方法

影响版本
 
 ubuntu12.04 64bit && 32bit
 
ubuntu14.04 64bit && 32bit
 
 ubuntu16.04 64bit && 32bit
 
解决方案:
 
 ubuntu12.04 默认未安装NetworkManager,使用DHCP方式,可以在/etc/network/interfaces配置文件中添加METRIC=xx参数,并重启网络即可生效,默认值越小,路由选择越优先,用户预期想使用的那个路由的METRIC值必须是最小的。ubuntu 64bit 或32bit,对上层用户来说,在网卡设置方面没有区别,所以不区分处理。
 
ubuntu14.04未安装NetworkManager,使用DHCP方式,可以在/etc/network/interfaces配置文件中添加METRIC=xx参数,并重启网络即可生效,默认值越小,路由选择越优先,用户预期想使用的那个路由的METRIC值必须是最小的. ubuntu 64bit 或32bit,对上层用户来说,在网卡设置方面没有区别,所以不区分处理。
 
 ubuntu16.04未安装NetworkManager,使用DHCP方式,可以在/etc/network/interfaces和/etc/network/interfaces.d/50-cloud-init.cfg配置文件中添加METRIC=xx参数,并重启网络即可生效,默认值越小,路由选择越优先,用户预期想使用的那个路由的METRIC值必须是最小的。 ubuntu 64bit 或32bit,对上层用户来说,在网卡设置方面没有区别,所以不区分处理。
 
问题分析:
 
1. ubuntu12.04 64bit && 32bit
 
默认未安装NetworkManager
 
默认采用DHCP方式获取网卡信息
 
创建时默认一个网卡:
 
名称     port057020
 
编码     2117d7d6-bb21-4c0b-84c7-b0a1195f0978
 
关联腾讯云服务器         wftest03
 
IP地址   10.112.137.230
 
公网IP   112.35.31.153
 
进入腾讯云服务器:
 
root@wftest03:~# ip a s
 
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
 
    inet 127.0.0.1/8 scope host lo
 
       valid_lft forever preferred_lft forever
 
    inet6 ::1/128 scope host
 
       valid_lft forever preferred_lft forever
 
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
 
    link/ether fa:16:3e:74:cd:6a brd ff:ff:ff:ff:ff:ff
 
    inet 10.112.137.230/22 brd 10.112.139.255 scope global eth0
 
       valid_lft forever preferred_lft forever
 
    inet6 fe80::f816:3eff:fe74:cd6a/64 scope link
 
       valid_lft forever preferred_lft forever
 
 
 
root@wftest03:~# ip route  show
 
default via 10.112.136.1 dev eth0  metric 100
 
10.112.136.0/22 dev eth0  proto kernel  scope link  src 10.112.137.230
 
此种情况下,用户通过云平台上提供的接口,新增了一个网卡,
 
名称     wftest03
 
编码     a6beb8ae-8b8a-471c-824d-2acaafa0352a
 
关联腾讯云服务器         wftest03
 
IP地址   192.168.10.97
 
公网IP
 
进入腾讯云服务器,查看其信息:
 
root@wftest03:~# ip a s
 
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
 
    inet 127.0.0.1/8 scope host lo
 
       valid_lft forever preferred_lft forever
 
    inet6 ::1/128 scope host
 
       valid_lft forever preferred_lft forever
 
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
 
    link/ether fa:16:3e:74:cd:6a brd ff:ff:ff:ff:ff:ff
 
    inet 10.112.137.230/22 brd 10.112.139.255 scope global eth0
 
       valid_lft forever preferred_lft forever
 
    inet6 fe80::f816:3eff:fe74:cd6a/64 scope link
 
       valid_lft forever preferred_lft forever
 
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
 
    link/ether fa:16:3e:ad:4d:c4 brd ff:ff:ff:ff:ff:ff
 
 
 
root@wftest03:~# ip route  show
 
default via 10.112.136.1 dev eth0  metric 100
 
10.112.136.0/22 dev eth0  proto kernel  scope link  src 10.112.137.230
 
由于ubuntu12.04系统中无NetworkManager,因此可以看到,eth1没有获取到ip,手动配置网络文件:
 
root@wftest03:~# vim /etc/network/interfaces
 
# The loopback network interface
 
auto lo
 
iface lo inet loopback
 
# The primary network interface
 
auto eth0
 
iface eth0 inet dhcp
 
auto eth1
 
iface eth1 inet dhcp
 
重启网络:
 
root@wftest02:~# ifup eth1
 
发现默认路由变为了:
 
root@wftest03:~# ip route  show
 
default via 10.112.136.1 dev eth0  metric 100
 
10.112.136.0/22 dev eth0  proto kernel  scope link  src 10.112.137.230
 
192.168.10.0/24 dev eth1  proto kernel  scope link  src 192.168.10.97
 
此时,默认路由仍走10.112.136.1,可为2个网卡分别配置METRIC参数,配置如下:
 
root@wftest03:~# cat  /etc/network/interfaces
 
# The loopback network interface
 
auto lo
 
iface lo inet loopback
 
 
 
# The primary network interface
 
auto eth0
 
iface eth0 inet dhcp
 
metric 10   #增加此行如左
 
auto eth1
 
iface eth1 inet dhcp
 
metric 100   #增加此行如左
 
重启网络:
 
root@wftest03:~# ifdown eth0 && ifup eth0
 
root@wftest03:~# ifdown eth1 && ifup eth1
 
重新查看路由:
 
root@wftest03:~# ip route  show
 
default via 10.112.136.1 dev eth0  metric 10
 
default via 192.168.10.1 dev eth1  metric 100
 
10.112.136.0/22 dev eth0  proto kernel  scope link  src 10.112.137.230
 
192.168.10.0/24 dev eth1  proto kernel  scope link  src 192.168.10.97
 
测试访问8.8.8.8所走的默认路由:
 
root@wftest03:~# ip route  get 8.8.8.8
 
8.8.8.8 via 10.112.136.1 dev eth0  src 10.112.137.230
 
    cache更改默认路由成功。
 
注意:如果需要腾讯云服务器能够访问外网,不能做以下操作。如果要让默认路由走192.168.10.1,可为2个网卡分别配置METRIC参数,配置如下:
 
root@wftest03:~# cat  /etc/network/interfaces
 
# The loopback network interface
 
auto lo
 
iface lo inet loopback
 
 
 
# The primary network interface
 
auto eth0
 
iface eth0 inet dhcp
 
metric 100   #增加此行如左
 
auto eth1
 
iface eth1 inet dhcp
 
metric 10   #增加此行如左
 
重启网络:
 
root@wftest03:~# ifdown eth0 && ifup eth0
 
root@wftest03:~# ifdown eth1 && ifup eth1
 
重新查看路由:
 
root@wftest03:~# ip route  show
 
default via 192.168.10.1 dev eth1  metric 10
 
default via 10.112.136.1 dev eth0  metric 100
 
10.112.136.0/22 dev eth0  proto kernel  scope link  src 10.112.137.230
 
192.168.10.0/24 dev eth1  proto kernel  scope link  src 192.168.10.97
 
测试访问8.8.8.8所走的默认路由,此时不能正常访问:
 
root@wftest03:~# ip route  get 8.8.8.8
 
8.8.8.8 via 192.168.10.1 dev eth1  src 192.168.10.97
 
    cache更改默认路由成功。
 
 
 
2. ubuntu14.04 64bit && 32bit
 
默认未安装NetworkManager
 
默认采用DHCP方式获取网卡信息
 
创建时默认一个网卡:
 
名称     port082391
 
编码     f0953c1a-7c57-40ea-bb3f-050cb43ff421
 
关联腾讯云服务器         wftest02
 
IP地址   10.112.137.227
 
公网IP   112.35.31.150
 
进入腾讯云服务器:
 
root@wftest02~#  ip a s
 
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
 
    inet 127.0.0.1/8 scope host lo
 
       valid_lft forever preferred_lft forever
 
    inet6 ::1/128 scope host
 
       valid_lft forever preferred_lft forever
 
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
 
    link/ether fa:16:3e:b8:4b:b3 brd ff:ff:ff:ff:ff:ff
 
    inet 10.112.137.227/22 brd 10.112.139.255 scope global eth0
 
       valid_lft forever preferred_lft forever
 
    inet6 fe80::f816:3eff:feb8:4bb3/64 scope link
 
       valid_lft forever preferred_lft foreverr
 
 
 
root@wftest02 ~#  ip route show
 
default via 10.112.136.1 dev eth0
 
10.112.136.0/22 dev eth0  proto kernel  scope link  src 10.112.137.227
 
此种情况下,用户通过云平台上提供的接口,新增了一个网卡,
 
名称     wftes32
 
编码     8f2f0553-8785-47f7-8a8f-03997bf5d9f3
 
关联腾讯云服务器         wftest02
 
IP地址   192.168.10.96
 
公网IP
 
进入腾讯云服务器,查看其信息:
 
root@wftest02 ~#  ip a s
 
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
 
    inet 127.0.0.1/8 scope host lo
 
       valid_lft forever preferred_lft forever
 
    inet6 ::1/128 scope host
 
       valid_lft forever preferred_lft forever
 
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
 
    link/ether fa:16:3e:b8:4b:b3 brd ff:ff:ff:ff:ff:ff
 
    inet 10.112.137.227/22 brd 10.112.139.255 scope global eth0
 
       valid_lft forever preferred_lft forever
 
    inet6 fe80::f816:3eff:feb8:4bb3/64 scope link
 
       valid_lft forever preferred_lft forever
 
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
 
    link/ether fa:16:3e:bf:88:4a brd ff:ff:ff:ff:ff:ff
 
root@wftest02:~# ip route  show
 
default via 10.112.136.1 dev eth0
 
10.112.136.0/22 dev eth0  proto kernel  scope link  src 10.112.137.227
 
由于ubuntu系统中无NetworkManager,因此可以看到,eth1没有获取到ip,手动配置网络文件:
 
root@wftest02:~# vim /etc/network/interfaces
 
auto lo
 
iface lo inet loopback
 
# The primary network interface
 
auto eth0
 
iface eth0 inet dhcp
 
auto eth1
 
iface eth1 inet dhcp
 
重启网络:
 
root@wftest02:~# ifup eth1
 
发现默认路由变为了:
 
root@wftest02:~# ip route  show
 
default via 10.112.136.1 dev eth0
 
10.112.136.0/22 dev eth0  proto kernel  scope link  src 10.112.137.227
 
192.168.10.0/24 dev eth1  proto kernel  scope link  src 192.168.10.96
 
此时,为了使默认路由仍走10.112.136.1,可为2个网卡分别配置METRIC参数,配置如下:
 
root@wftest02:~# cat  /etc/network/interfaces
 
# The loopback network interface
 
auto lo
 
iface lo inet loopback
 
# The primary network interface
 
auto eth0
 
iface eth0 inet dhcp
 
metric 10   #增加此行如左
 
auto eth1
 
iface eth1 inet dhcp
 
metric 100    #增加此行如左
 
重启网络:
 
root@wftest02 ~#  ifdown eth0 && ifup eth0
 
root@wftest02 ~#  ifdown eth1 && ifup eth1
 
重新查看路由:
 
root@wftest02:~# ip route  show
 
default via 10.112.136.1 dev eth0  metric 10
 
default via 192.168.10.1 dev eth1  metric 100
 
10.112.136.0/22 dev eth0  proto kernel  scope link  src 10.112.137.227
 
192.168.10.0/24 dev eth1  proto kernel  scope link  src 192.168.10.96
 
测试访问8.8.8.8所走的默认路由:
 
root@wftest02:~# ip route  get 8.8.8.8
 
8.8.8.8 via 10.112.136.1 dev eth0  src 10.112.137.227
 
    cache更改默认路由成功。
 
注意:如果需要腾讯云服务器能够访问外网,不能做以下操作。如果要让默认路由走192.168.10.1,可为2个网卡分别配置METRIC参数,配置如下:
 
root@wftest02:~# cat  /etc/network/interfaces
 
# The loopback network interface
 
auto lo
 
iface lo inet loopback
 
# The primary network interface
 
auto eth0
 
iface eth0 inet dhcp
 
metric 100   #增加此行如左
 
auto eth1
 
iface eth1 inet dhcp
 
metric 10    #增加此行如左
 
重启网络:
 
root@wftest02 ~#  ifdown eth0 && ifup eth0
 
root@wftest02 ~#  ifdown eth1 && ifup eth1
 
重新查看路由:
 
root@wftest02:~# ip route  show
 
default via 192.168.10.1 dev eth1  metric 10
 
default via 10.112.136.1 dev eth0  metric 100
 
10.112.136.0/22 dev eth0  proto kernel  scope link  src 10.112.137.227
 
192.168.10.0/24 dev eth1  proto kernel  scope link  src 192.168.10.96
 
测试访问8.8.8.8所走的默认路由,此时访问外网不能成功:
 
root@wftest02:~# ip route  get 8.8.8.8
 
8.8.8.8 via 192.168.10.1 dev eth1  src 192.168.10.96
 
    cache更改默认路由成功。
 
 
 
3. ubuntu16.04 64bit && 32bit
 
默认未安装NetworkManager
 
默认采用DHCP方式获取网卡信息
 
创建时默认一个网卡:
 
名称     port284362
 
编码     efb032b6-1c6f-4051-823b-c1a7039cebe1
 
关联腾讯云服务器         wftest04
 
IP地址   10.112.137.231
 
公网IP   112.35.31.154
 
进入腾讯云服务器:
 
root@wftest04:~# ip a s
 
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
 
    inet 127.0.0.1/8 scope host lo
 
       valid_lft forever preferred_lft forever
 
    inet6 ::1/128 scope host
 
       valid_lft forever preferred_lft forever
 
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
 
    link/ether fa:16:3e:fe:1c:17 brd ff:ff:ff:ff:ff:ff
 
    inet 10.112.137.231/22 brd 10.112.139.255 scope global eth0
 
       valid_lft forever preferred_lft forever
 
    inet6 fe80::f816:3eff:fefe:1c17/64 scope link
 
       valid_lft forever preferred_lft forever
 
 
 
root@wftest04:~# ip route show
 
default via 10.112.136.1 dev eth0
 
10.112.136.0/22 dev eth0  proto kernel  scope link  src 10.112.137.231
 
此种情况下,用户通过云平台上提供的接口,新增了一个网卡,
 
名称     wftest04
 
编码     fd83835b-bec2-4969-852a-d1e776d49587
 
关联腾讯云服务器         wftest04
 
IP地址   192.168.10.98
 
公网IP
 
进入腾讯云服务器,查看其信息:
 
root@wftest04:~# ip a s
 
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen     1
 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
 
    inet 127.0.0.1/8 scope host lo
 
       valid_lft forever preferred_lft forever
 
    inet6 ::1/128 scope host
 
       valid_lft forever preferred_lft forever
 
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
 
    link/ether fa:16:3e:fe:1c:17 brd ff:ff:ff:ff:ff:ff
 
    inet 10.112.137.231/22 brd 10.112.139.255 scope global eth0
 
       valid_lft forever preferred_lft forever
 
    inet6 fe80::f816:3eff:fefe:1c17/64 scope link
 
       valid_lft forever preferred_lft forever
 
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
 
    link/ether fa:16:3e:8d:eb:9a brd ff:ff:ff:ff:ff:ff
 
 
 
root@wftest04:~# ip route show
 
default via 10.112.136.1 dev eth0
 
10.112.136.0/22 dev eth0  proto kernel  scope link  src 10.112.137.231
 
由于ubuntu系统中无NetworkManager,因此可以看到,eth1没有获取到ip,手动配置网络文件:
 
root@wftest04:~# vim /etc/network/interfaces
 
auto lo
 
iface lo inet loopback
 
# The primary network interface
 
auto eth0
 
iface eth0 inet dhcp
 
auto eth1
 
iface eth1 inet dhcp
 
重启网络:
 
root@wftest04:~# ifup eth1
 
发现默认路由变为了:
 
root@wftest04:~# ip route show
 
default via 10.112.136.1 dev eth0
 
10.112.136.0/22 dev eth0  proto kernel  scope link  src 10.112.137.231
 
192.168.10.0/24 dev eth1  proto kernel  scope link  src 192.168.10.98
 
此时,为了使默认路由仍走10.112.136.1,可为2个网卡分别配置METRIC参数,配置如下:
 
[root@wftest04:~# cat  /etc/network/interfaces
 
# The loopback network interface
 
source /etc/network/interfaces.d/*
 
auto lo
 
iface lo inet loopback
 
# The primary network interface
 
auto eth0
 
iface eth0 inet dhcp
 
metric 10     #增加此行如左
 
auto eth1
 
iface eth1 inet dhcp
 
metric 100    #增加此行如左
 
 
 
root@wftest04:~# vim /etc/network/interfaces.d/50-cloud-init.cfg
 
iface lo inet loopback
 
 
 
auto eth0
 
iface eth0 inet dhcp
 
metric 10
 
 
 
auto eth1
 
iface eth1 inet dhcp
 
metric 100
 
重启网络:
 
[root@wftest04 ~]#  service networking restart
 
重新查看路由:
 
root@wftest04:~# ip route show
 
default via 10.112.136.1 dev eth0  metric 10
 
default via 192.168.10.1 dev eth1  metric 100
 
10.112.136.0/22 dev eth0  proto kernel  scope link  src 10.112.137.231
 
192.168.10.0/24 dev eth1  proto kernel  scope link  src 192.168.10.98
 
测试访问8.8.8.8所走的默认路由:
 
root@wftest04:~# ip route  get 8.8.8.8
 
8.8.8.8 via 10.112.136.1 dev eth0  src 10.112.137.231
 
    cache更改默认路由成功。
 
注意:如果需要腾讯云服务器能够访问外网,不能做以下操作。如果此时要让默认路由仍走192.168.10.1,可为2个网卡分别配置METRIC参数,配置如下:
 
[root@wftest04:~# cat  /etc/network/interfaces
 
# The loopback network interface
 
source /etc/network/interfaces.d/*
 
auto lo
 
iface lo inet loopback
 
# The primary network interface
 
auto eth0
 
iface eth0 inet dhcp
 
metric 100     #增加此行如左
 
auto eth1
 
iface eth1 inet dhcp
 
metric 10    #增加此行如左
 
 
 
root@wftest04:~# vim /etc/network/interfaces.d/50-cloud-init.cfg
 
iface lo inet loopback
 
auto eth0
 
iface eth0 inet dhcp
 
metric 100    #增加此行如左
 
auto eth1
 
iface eth1 inet dhcp
 
metric 10  #增加此行如左
 
重启网络:
 
[root@wftest04 ~]#  service networking restart
 
重新查看路由:
 
root@wftest04:~# ip route show
 
default via 192.168.10.1 dev eth1  metric 10
 
default via 10.112.136.1 dev eth0  metric 100
 
10.112.136.0/22 dev eth0  proto kernel  scope link  src 10.112.137.231
 
192.168.10.0/24 dev eth1  proto kernel  scope link  src 192.168.10.98
 
测试访问8.8.8.8所走的默认路由,此时不能访问外网:
 
root@wftest04:~# ip route  get 8.8.8.8
 
8.8.8.8 via 192.168.10.1 dev eth1  src 192.168.10.98
 
cache更改默认路由成功。

标签