网络交换机给接入口配置的Trunk口,可以接入多个VLAN,安装好系统后不能上网。这里使用systemd-networkd进行配置,也可以利用iproute2或netctl配置。
打开终端输入 ip addr 查看网络状况
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
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: enp4s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 0***1 brd ff:ff:ff:ff:ff:ff
此例中网卡接口名称为‘enp4s0’,请根据自己的实际情况进行修改。
停止网卡服务:
sudo ifcfg enp4s0 stop
sudo ip link set enp4s0 down
sudo ip addr flush enp4s0
sudo ip link set enp4s0 up
禁用DHCP客户端后台驻留程序和网络管理器服务:
#关闭dhcp服务,重启后会自动开启
sudo systemctl stop dhcpcd
#禁用DHCP服务,重启后不会开启
sudo systemctl disable dhcpcd
#关闭网络管理服务,在manjaro桌面的右下脚不能通过图形界面管理网络。
sudo systemctl stop NetworkManager
#禁用网络管理服务,
sudo systemctl disable NetworkManager
重启网络
sudo systemctl restart systemd-networkd
启用 systemd-networkd。
$ sudo systemctl disable NetworkManager
$ sudo systemctl enable systemd-networkd
你还要启用 systemd-resolved 服务,systemd-networkd用它来进行域名解析。该服务还实现了一个缓存式 DNS 服务器。
$ sudo systemctl enable systemd-resolved
$ sudo systemctl start systemd-resolved
当启动后,systemd-resolved 就会在 /run/systemd 目录下某个地方创建它自己的 resolv.conf。但是,把 DNS 解析信息存放在 /etc/resolv.conf 是更普遍的做法,很多应用程序也会依赖于 /etc/resolv.conf。因此为了兼容性,按照下面的方式创建一个到 /etc/resolv.conf 的符号链接。
$ sudo rm /etc/resolv.conf
$ sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
在/etc/systemd/network/目录下空目录,在这个文件夹下面添加网络配置文件,下面的100,200为VLAN号配置规则如下:例如
网卡接口是 enp4s0, enp4s0.100 表示vlan id 为100.
/etc/systemd/network/目录一般要添加如下三个文件,如果要添加多个VLAN,则后面两个文件也要相对应的添加上去
enp4s0.network #enp4s0为网卡名
enp4s0.100.netdev #enp4s0为网卡名,100为VLAN id
enp4s0.100.network #配置VLAN的ip,enp4s0为网卡名,100为VLAN id
sudo nano /etc/systemd/network/enp4s0.network
[Match]
Name=enp4s0
[Network]
DHCP=ipv4
;these are arbitrary names, but must match the *.netdev and *.network files
VLAN=enp4s0.100
VLAN=enp4s0.200
sudo nano /etc/systemd/network/enp4s0.100.netdev
[NetDev]
Name=enp4s0.100
Kind=vlan
[VLAN]
Id=100
sudo nano /etc/systemd/network/enp4s0.200.netdev
[NetDev]
Name=enp4s0.200
Kind=vlan
[VLAN]
Id=200
VLAN下的IP地址设置
sudo nano /etc/systemd/network/enp4s0.100.network
[Match]
Name=enp4s0.100
[Network]
DHCP=no
[Address]
Address=192.168.0.25/24
sudo nano /etc/systemd/network/enp4s0.200.network
[Match]
Name=enp4s0.200
[Network]
DHCP=yes
[DHCP]
UseRoutes=false
添加DNS
sudo nano /etc/resolv.conf
添加
nameserver 8.8.8.8
所有配置完成后,重启网络即可
sudo systemctl restart systemd-networkd
用 ip addr 命令查看
[abcd@abcd-pc Desktop]$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
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: enp4s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 4**41 brd ff:ff:ff:ff:ff:ff
3: enp4s0.100@enp4s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 00**1 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.25/24 brd 192.168.0.255 scope global enp4s0.100
valid_lft forever preferred_lft forever
inet6 fe***4 scope link
valid_lft forever preferred_lft forever