树莓派设置固定IP

背景

树莓派默认是DHCP自动获取IP地址的,但在实际使用中,经常会有设置固定IP的情况。网上也有很多设置固定IP的方法,但要注意的是,不同版本的树莓派系统还是有区别的。

之前用的是树莓派8 (Jessie)版本,后来在树莓派9(stretch)中用相同的方法修改配置文件设置固定IP之后,导致整个网卡起不了了,无线和有线网卡都无法使用。这需要特别注意。

树莓派 Debian 8 (Jessie)

在树莓派 Debian 8 (Jessie)版本的系统中,设置固定IP需要修改两个文件,详细操作如下:

  • 备份原文件

    1
    2
    sudo cp /etc/network/interfaces /etc/network/interfaces.bak
    sudo cp /etc/dhcpcd.conf /etc/dhcpcd.conf.bak
  • 修改interfaces文件

    1
    sudo nano /etc/network/interfaces

    注释掉如下语句:

    1
    iface eth0 inet dhcp

    增加如下语句:

    1
    2
    3
    4
    iface eth0 inet static
    address xx.xx.xx.xx
    netmask 255.255.255.0
    gateway xx.xx.xx.254
  • 修改dhcpcd.conf文件

    1
    sudo nano /etc/dhcpcd.conf

    增加如下语句:

    1
    2
    3
    4
    interface eth0
    static ip_address=xx.xx.xx.xx/24
    static routers=xx.xx.xx.254
    static domain_name_servers=xx.xx.xx.xx xx.xx.xx.xx
  • 重启树莓派

    1
    reboot

树莓派 Debian 9 (stretch)

在树莓派 Debian 9 中,配置方法有了变化,我们看下/etc/network/interfaces文件:

interfaces

根据提示,我们再看下dhcpcd.conf文件中的例子:

dhcpcd

可见,直接修改这个文件即可:

  • 备份原文件

    1
    sudo cp /etc/dhcpcd.conf /etc/dhcpcd.conf.bak
  • 修改dhcpcd.conf文件

    增加如下语句:

    1
    2
    3
    4
    interface eth0
    static ip_address=xx.xx.xx.xx/24
    static routers=xx.xx.xx.254
    static domain_name_servers=xx.xx.xx.xx xx.xx.xx.xx
  • 重启树莓派

    1
    reboot

需要注意的是,如果直接按照之前的方法,也修改了/etc/network/interfaces文件的话,会导致树莓派整个网卡挂了,无法连接网络。