独立服务器安装了操作系统后,如果是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转发设置是否有没有问题。
文章出自:挖站否 https://wzfou.com/ifconfig-ip/,部分内容参考:tecmint.com、lesca.me、51cto.com版权所有。本站文章除注明出处外,皆为作者原创文章,可自由引用,但请注明来源。
文章更新于: %s = human-readable time difference 下午9:36
查看评论
谢谢, 有收获. 昨晚俺的网络IP没了, ssh连不上, CPU一度50+, 后来降到个位数ssh还是连不上, web都看不到.
只好从web console 看, ping google不通, 应该是路由IP没了, reboot解决问题. 是Vultr VPS
Qi姐有啥建议? 今天改了10-ens3.yaml , dns 8.8.8.8, dhcp关了, 不知道合适不合适...
无故消失了?一般情况下VPS的IP很少出问题。
我的都是自动上了IPv6了。
好复杂,跟着Qi姐学习吧。
干货 不过ipv6的配置方法不同提供商各不相同~比如online家用的是dhcp-cilent
嗯,是的,已经更新了提醒。谢谢。
Ubuntu 18.04的方法是不正确的,cloud-init只会进行一次初始化,随后添加的并不会生效
杜甫上cloud-init因为缺少数据源,不会进行初始化
部分云平台的初始化并不是cloud-init方案
有兴趣可以参考:https://zhuanlan.zhihu.com/p/27664869
非常感谢,已经更新。
沙发。