VPS主机和独立服务器网络配置方法-Linux手动设置IPv4和IPv6地址

独立服务器安装了操作系统后,如果是CentOS的话默认的还需要自己手动配置好网络,一般地Linux配置网络可以用的命令有ifconfig、route、ip、ip route等,涉及到了IP地址设定以及DNS域名解析服务器设定。

另外,现在IPv6也开始逐渐普及下来了,很多的主机商也提供了IPv6地址服务,我们也可以为独立服务器配置好IPv6地址。本篇文章就来分享一下如何在服务器上自定义网络配置,主要是记录一下ifconfig、route、ip几个命令的用法。

在使用Linux服务器如果主机商提供了IPMI的话还是挺方便的,独立服务器有时会忘记root密码,或者是服务器断电引起磁盘错误,导致root密码无法使用,这时候我们可以利用Rescue install system 救援安装系统来修改Root密码。

如果你觉得使用命令麻烦的话,你也可以在独立服务器安装操作系统时直接设置好网络,图形界面操作起来和Windows差不多。另外,Linux还可以输入setup命令,可以启动图形界面menuconfing,选择network configuration ,进入网络配置界面,比较适合新手朋友。

更多的Linux实用命令这里有:

  1. Linux系统监控命令整理汇总-掌握CPU,内存,磁盘IO等找出性能瓶颈

  2. Linux Crontab命令定时任务基本语法与操作教程-VPS/服务器自动化

  3. Linux的php-fpm优化心得-php-fpm进程占用内存大和不释放内存问题


一、CentOS救援模式修改密码

按照IPMI安装操作系统图文教程的方法,将CentOS ISO挂载到光驱上,然后重新启用机器 ,上下键移动到Rescue install system 救援安装系统。

点击下一步,然后会提示你系统挂载在/mnt/sysimage下,如果要到root环境下,需要执行: chroot /mnt/sysimage 。

确定使用Shell模式。

执行命令:chroot /mnt/sysimage执行原系统文件,这时可以使用passwd更改密码,或者vi打开passwd文件对密码标志位进行修改,之后exit退出原系统,再reboot重启。

二、Linux的网络配置文件ifcfg

Linux的网络配置的路径: /etc/sysconfig/network-scripts/,配置完成以后需要重启网络:service network restart ,然后查看ip:使用 ifconfig 或者 ip addr 。

ifcfg文件的一些属性说明

  • TYPE="Ethernet" # 配置文件接口类型:有Ethernet 、IPsec等类型,网络接口类型为Ethernet

  • BOOTPROTO="static" # 系统启动地址协议:

  • #none:不使用启动地址协议

  • #bootp:BOOTP协议

  • #dhcp:DHCP动态地址协议

  • #static:静态地址协议

  • IPADDR=192.168.1.200 #静态IP 设为 192.168.1.200

  • NETMASK=255.255.255.0 #子网掩码

  • NETWORK=192.168.1.0 #网络段

  • BROADCAST=192.168.1.255 #广播地址

  • #GATEWAY:网关地址

  • #HWADDR/MACADDR:MAC地址。只需设置其中一个,同时设置时不能相互冲突。

  • #NM_CONTROLLED:是否由Network Manager控制该网络接口。修改保存后立即生效,无需重启。建议一般设为no。

  • #yes:由Network Manager控制

  • #no:不由Network Manager控制

  • DEFROUTE="yes" #是否把这个eth设置为默认路由呢

  • PEERDNS="yes" #是否指定DNS。如果使用DHCP协议,默认为yes。

  • PEERROUTES="yes"

  • IPV4_FAILURE_FATAL="no"

  • IPV6INIT="yes" # 是否执行IPv6

  • IPV6_AUTOCONF="yes"

  • IPV6_DEFROUTE="yes"

  • IPV6_PEERDNS="yes"

  • IPV6_PEERROUTES="yes"

  • IPV6_FAILURE_FATAL="no"

  • NAME="eno16777736" #这个网络的名字

  • UUID="6c336bc6-c471-4e9b-aeb8-b1f380fbe22f"

  • DEVICE="eno16777736" #网络接口名称

  • ONBOOT="yes" #是否开机启动


三、ifconfig 命令(查看或配置ip)

1、查看网络连接

  • ifconfig \ 显示所有活动连接,不包令禁用的设备




  • ifconfig -a \ 显示所有活动及非活动的连接


显示指定接口的连接

  • ifconfig eth1


2、配置ip地址

  • ifconfig eth1 192.168.0.1 netmask 255.255.255.




  • ifconfig eth1 192.168.0.1/24


3、启用或禁用接口

  • ifconfig eth1 down|up


  • ifdown eth1 \ 禁用接口

  • ifup eht1 \启用接口


四、route命令(查看或配置路由)

1、查看路由,使用-n可以以数字格式查看显示路由避免反解主机名,造成查询过慢。

  • route -n

  • Destination Gateway Genmask Flags Metric Ref Use Iface

  • 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1

  • #目标 下一跳地址 掩码 标志位 跳跃点 ref 使用的哪个接口


2、添加路由

(a)、网络路由

  • route add -net 192.168.1.0/24 gw 172.16.1.106


(b)、主机路由

  • route add -host 192.168.1.110 gw 172.16.1.106


(c)、默认路由

  • # route add default gw 172.16.1.106


  • # route add -net 0.0.0.0 gw 172.16.1.106


查看这三条新创建的

  • Destination Gateway Genmask Flags Metric Ref Use Iface

  • 192.168.1.110 172.16.1.106 255.255.255.255 UGH 0 0 0 eth0

  • 192.168.1.0 172.16.1.106 255.255.255.0 UG 0 0 0 eth0

  • 0.0.0.0 172.16.1.106 0.0.0.0 UG 0 0 0 eth0


3、删除路由

  • route del -host 192.168.1.110

  • route del -net 192.168.1.0/24


五、DNS配置

只能通过配置文件:/etc/resolv.conf 来修改内容如下:

  • ; generated by /sbin/dhclient-script

  • search localdomain wzfou.com \ 搜索域

  • nameserver 8.8.8.8 \ DNS域名服务器

  • #一行一个DNS,最多配置三个DNS


**********************************************************************************

随着系统的发展以上两种命令,会慢慢的被如下两个命令替换.
ifconfig = ip

route = ip route

六、ip命令操作说明

linux的ip命令和ifconfig类似,但前者功能更强大,并旨在取代后者。使用ip命令,只需一个命令,你就能很轻松地执行一些网络管理任务。

ip [ OPTIONS ] OBJECT { COMMAND | help }

  • [OPTIONS]:

  • -s 显示出设备的统计数

  • OBJECT : { link | addr | route }(OBJECT对象


(1)关于接口设备(device)的相关设置ip link

  • ip [-s] link show <== 单纯的查看该设备的相关信息

  • ip link set [device] [动作与参数]

  • up|down:激活或禁用指定接口

  • ifup/ifdown

  • show [dev IFACE]:指定接口

  • [up]:仅显示处于激活状态的接口

  • name:给与这个设备一个特殊的名字

  • mtu:最大传输单元


例如:

  • ip link show

  • ip -s link show eth0

  • ip link set eth0 up

  • ip link set eth0 mtu 1000

  • ip link set eth0 down

  • ip link set eth0 name vbird(先关闭设备,再设置设备名)

  • ip link set eth0 address aa:aa:aa:aa:aa:aa

  • (如果是测试,测试完请改回来)


(2)ip addr { add | del } [IP参数] dev[相关参数]

  • show:仅显示接口的IP信息

  • label:添加地址时指明网卡别名

  • [scope {global|link|host}]:指明作用域

  • global: 全局可用(默认)

  • link: 仅链接可用

  • host: 本机可用

  • site:仅支持IPV6,仅允许本机的连接

  • [broadcast ADDRESS]:指明广播地址,如果设置值是+ 表示“让系统自动计算”


例如:

  • ip address add 192.168.50.50/24 broadcast + dev eth0 label eth0:0


(3)ip address flush – 使用格式同show

  • ip addr add 172.16.100.100/16 dev eth0 label eth0:0

  • ip addr del 172.16.100.100/16 dev eth0 label eth0:0

  • ip addr flush dev eth0 label eth0:0


(4)添加删除路由:ip route [add|del] [IP或网络号] [via gateway][dev 设备]

  • add|del添加(add)或删除(del)路由

  • via 从哪个gateway出去,不一定需要

  • dev 哪个设备连出去,需要

  • ip route add 192.168.5.0/24 dev eth0(添加本机可直接沟通的网络)

  • ip route add 192.168.10.0/24 via 192.168.5.100 dev eth0(增加通往外部的路由)

  • ip route add default via 192.168.1.254 dev eth0(添加默认路由)

  • ip route add 192.168.0.0/24 via 172.16.0.1

  • ip route add 192.168.1.13 via 172.16.0.1


(5)添加网关:ip route add default via GW dev IFACE

  • ip route add default via 172.16.0.1


(6)显示路由:ip route show|list

(7)清空路由表:ip route flush [dev IFACE] [via PREFIX]

  • ip route flush dev eth0

  • ip addr add 172.16.1.2/16 dev eth0

  • ip addr add 172.16.1.1/16 dev eth0 label eth0:0

  • ip addr add 172.16.1.2/16 dev eth0 label eth0:0

  • ip addr del 172.16.1.1/16 dev eth0 label eth0:0

  • ip addr flush dev eth0 label eth0:0


七、如何Ping测试IPv6网络?

7.1 Windows

以下Windows版本的ping命令支持ping IPv6地址:
Windows XP with SP1 及以上

Windows Vista 及以上

Windows Server 2003 及以上

1. ping ipv6主机名

  • ping -6 ipv6.google.com

  • /!注意:当ping ipv6主机名时,必须加上参数-6;直接ping IPv6地址时可以省略。


2. ping ipv6地址

  • ping IPv6Address[%ZoneID]

  • 例如:

  • ping 2001:4860:0:2001::68


如果要ping link-local地址,则需要指定网络接口索引,如:

  • ping fe80::260:97ff:fe02:6ea5%4


其中%4表示“用索引为4的网络接口”ping目标计算机。

7.2 Linux

在Linux发行版中,使用ping6命令ping IPv6主机或者地址。

1. ping ipv6主机名

  • ping6 ipv6.google.com


2. ping ipv6地址

  • ping6 IPv6Address[%InterfaceName]


如果要ping link-local地址,则需要指定网络接口名称,如:

  • ping fe80::260:97ff:fe02:6ea5%eth0

  • #其中%eth0表示“用网络接口eth0 ping目标计算机”。


八、如何在服务器启用IPv6并配置IPv6地址?

8.1 UBUNTU 18.04

PS:2019年1月12日更新,根据好友Skylake的反馈,cloud-init只会进行一次初始化,随后添加的并不会生效,独立服务器上cloud-init因为缺少数据源,不会进行初始化。部分云平台的初始化并不是cloud-init方案。大家在使用时注意。

如果是 Ubuntu 18.04, 直接编辑 50-cloud-init.yaml:

  • sudo nano /etc/netplan/50-cloud-init.yaml


如下所示,添加你的独立器IPv6地址:(原来的不要动):

  • network:

  • version: 2

  • ethernets:

  • eth0:

  • addresses:

  • - 203.0.113.213/20

  • - primary_ipv6_address/64

  • - 192.0.2.11/16

  • gateway4: 206.189.208.1

  • gateway6: ipv6_gateway

  • match:

  • macaddress: ce:2c:fb:85:b3:86


下一步到 nameservers 添加IPv6的DNS服务器:

  • nameservers:

  • addresses:

  • - 67.207.67.2

  • - 67.207.67.3

  • - 2001:4860:4860::8844

  • - 2001:4860:4860::8888

  • search: []

  • set-name: eth0


如果你用的是Digitalocean VPS主机,用上了Ubuntu 18.04 LTS,可以参考以下示例:

  • #修改/etc/netplan/50-cloud-init.yaml文件

  • # This file is generated from information provided by

  • # the datasource. Changes to it will not persist across an instance.

  • # To disable cloud-init's network configuration capabilities, write a file

  • # /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:

  • # network: {config: disabled}

  • network:

  • version: 2

  • ethernets:

  • eth0:

  • addresses:

  • - 公共ipv4地址/20

  • - 私有ipv4地址/16

  • - 公共ipv6地址/64

  • gateway4: 公共ipv4网关

  • gateway6: 公共ipv6网关

  • match:

  • macaddress: MAC地址

  • nameservers:

  • addresses:

  • - 67.207.67.2

  • - 67.207.67.3

  • set-name: eth0

  • #最后执行命令,应用此文件:

  • netplan apply


8.2 DEBIAN 和 UBUNTU 16.04 或更早

在 Debian 和 Ubuntu 16.04 以及之前的版本, 编辑 network interface 文件:

  • sudo nano /etc/network/interfaces


然后如下演示添加IPv6地址:

  • iface eth0 inet6 static

  • address primary_ipv6_address

  • netmask 64

  • gateway ipv6_gateway

  • autoconf 0

  • dns-nameservers 2001:4860:4860::8844 2001:4860:4860::8888 209.244.0.3


重启网络:

  • sudo systemctl restart networking


8.3 CENTOS 或者 FEDORA

在 CentOS 或者 Fedora, 编辑 ifcfg-eth0 :

  • sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0


如下添加好IPv6地址:

  • IPV6INIT=yes

  • IPV6ADDR=primary_ipv6_address/64

  • IPV6_DEFAULTGW=ipv6_gateway

  • IPV6_AUTOCONF=no

  • DNS1=2001:4860:4860::8844

  • DNS2=2001:4860:4860::8888

  • DNS3=209.244.0.3


最后,重启网络.

  • sudo systemctl restart networking


九、总结

独立服务器配置服务器在手动配置IP时需要注意不要填写错误,由于在配置前需要做好备份工作,以免配置错误导致网络中断。当然,独立服务器提供了IPMI或者VNC图形管理面板就可放心地折腾。

如果你有用独立服务器安装SolusVM时,在配置服务器的IP时注意做KVM Bridge的设置,当所有的配置都做好记得检查一遍IP是否可以Ping通过,以及IP转发设置是否有没有问题。
    A+
发布日期:2019年1月13日  所属分类: 实用技术
标签: