独立服务器安装了操作系统后,如果是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实用命令这里有:
- Linux系统监控命令整理汇总-掌握CPU,内存,磁盘IO等找出性能瓶颈
- Linux Crontab命令定时任务基本语法与操作教程-VPS/服务器自动化
- 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转发设置是否有没有问题。
评论前必须登录!
注册