archlinux-static-ip

前言

笔者最近有幸可以重新用回 ArchLinux 。不过这一次是把 ArchLinux 用作服务器系统。既然是服务器,那么IP应该是固定的才对,所以想要把 ArchLinux 的上网方式由 DHCP 改成 Static。聪明的你或许可以通过查看官方WiKi来获得正确答案,由于个人比较愚笨试了WiKI中的几种方法都会有各种问题。经过不懈努力终于发现 ArchLinux 自带的 systemd-networkd 服务就可以设置静态IP

查看服务是否开启

执行以下命令查看 systemd-networkd 服务是否启动:

1
sudo systemctl status systemd-networkd

添加配置文件

首先执行以下命令查看网卡名称:

1
ip add //  或者 ifconfig

如图可见我的网卡名称是:enp1s0 ,所以我们在在 /etc/systemd/network 目录下添加配置文件 10-static-enp1s0.network

1
2
3
4
5
6
7
[Match]
Name=enp1s0

[Network]
Address=10.0.0.128/24
Gateway=10.0.0.1
DNS=10.0.0.1 8.8.8.8 114.114.114.114

enp1s0 改成你的网卡名称, 10.0.0.128 改成你对应的内网IP10.0.0.1 改成你内网的网关即可。

重启

执行以下命令把服务加入开机自启:

1
sudo systemctl reenable systemd-networkd

然后重启即可。

1
sudo reboot

查看IP

执行以下命令查看IP是否为设定的IP

1
ip addr //  或者 ifconfig

附注

笔者今天重新安装了 ArchLinux 的衍生版 —— Manjaro 后发现了一个小问题:重启后IP又变回了动态IP。再三思量以及寻找已经安装的包,终于发现了是 networkmanager 包(安装 wm 会自带这个包)的锅。只要卸载就可以了。

1
sudo pacman -Rsn `pacman -Qsq networkmanager` network-manager-applet

大功告成

至此,本篇文章就结束啦,希望本文对大家有帮助。