且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

《树莓派实战秘籍》——1.13 技巧13给Pi分配静态IP地址

更新时间:2022-09-16 15:00:41

本节书摘来自异步社区《树莓派实战秘籍》一书中的第1章,第1.13节,作者: 【美】Ruth Suehle , Tom Callaway 更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.13 技巧13给Pi分配静态IP地址

如果你希望每次都能够通过同一个IP地址连接到Pi,而不是临时去查看它,那么你需要为它分配一个静态IP地址。

许多ISP使用动态IP寻址,这意味着你每次连接到互联网时都会得到一个不同的IP地址。如果你要定期通过SSH连接到Pi(参见技巧12),以使用VoIP(参见技巧32)或者因为其他原因需要每次都要有相同的IP地址,你可以设置一个静态的IP地址。

在Pidora中,如果你运行的是headless模式,那么你可以按照技巧11的说明来做。如果不是headless模式,那么可以编辑/etc/sysconfig/network-scripts下的文件。

如果你通常是Debian的用户,则需要编辑的类似文件是/etc/network/interfaces。
你将会看到以ifcfg-<接口名>方式列出的可用的网络接口配置列表。选择你要使用的连接并用你常用的编辑器编辑,例如:


《树莓派实战秘籍》——1.13 技巧13给Pi分配静态IP地址

你将会看到如下的内容:


《树莓派实战秘籍》——1.13 技巧13给Pi分配静态IP地址https://yqfile.alicdn.com/791fc797e5ac2117babd0a971121df8159b80ccf.png" >

你需要将BOTPROTO行从dhcp修改为static,另外还需要保证ONBOOT设置为yes。然后添加IPADDR、NETMASK、BROADCAST,以及NETWORK等的信息,就像在headless文件中一样,切记不要选择一个已经在你的网络中使用的IP地址。NETMASK总是设为255.255.255.0,GATEWAY设置为你的路由器的IP地址:


《树莓派实战秘籍》——1.13 技巧13给Pi分配静态IP地址

最后,重启网络服务以应用你的新设置:


《树莓派实战秘籍》——1.13 技巧13给Pi分配静态IP地址https://yqfile.alicdn.com/c8f7b4ede74f99f361643e46bda6d47b651632d4.png" >

如果你使用的是基于Raspbian的发行版,你将会遵循类似的步骤,只有一点有所不同,你不用查找单个文件,而是打开/etc/network/interfaces文件(以root身份):


《树莓派实战秘籍》——1.13 技巧13给Pi分配静态IP地址

然后查找这一行:


《树莓派实战秘籍》——1.13 技巧13给Pi分配静态IP地址

将dhcp更改为static,并添加静态IP地址、网关、广播和子网掩码:


《树莓派实战秘籍》——1.13 技巧13给Pi分配静态IP地址

如果收集这些信息需要一些帮助,你可以通过运行ifconfig并分别注意inet addr、mask,以及bcast等关键字获取当前的IP地址、子网掩码以及广播地址,运行route -n获得网关及其调用的目的地网络(同样,在新的Fedora和Pidora版本中,使用ip addr替代ifconfig命令)。

选择一个唯一的静态IP地址

你务必要选择一个没有被任何其他在你的网络中的设备使用的IP地址,否则,你的网络连接将无法正常工作。当使用dhcp时,禁止使用相同的IP地址,而设置静态IP的时候也有可能不小心产生同样的IP地址。
此外,在设置静态IP地址时你需要手工指定一个DNS服务器。DHCP配置通常会为你配置一个DNS服务器,但对于静态IP配置来说,没有办法知道DNS服务器是什么。要设置DNS服务器,需要编辑/etc/resolv.conf文件(以root身份),并增加如下行:


《树莓派实战秘籍》——1.13 技巧13给Pi分配静态IP地址https://yqfile.alicdn.com/c1728f7222e8a08a0d65b7455e2b23fc7088d969.png" >

用你的DNS服务器的IP地址替换上面的11.23.58.13。如果你有多个DNS服务器,你可以在这个文件中有多个name server$IP行。

保存更改后,重新启动网络以使新设置生效:


《树莓派实战秘籍》——1.13 技巧13给Pi分配静态IP地址https://yqfile.alicdn.com/52c7e7271e8cad80bd6c570653695c4c54a19fad.png" >

现在你拥有了一个静态IP地址,每次访问互联网的时候不会再发生IP更改了。