Debian 配置静态IP及DNS

一、环境:

操作系统:Debian GNU/Linux 10

二、配置静态IP

1、interfaces 配置
文件路径: /etc/network/interfaces

# interfaces(5) file used by ifup(8) and ifdown(8)
# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d

auto lo
iface lo inet loopback

#开机启动eth1
auto eth1
#接口eth1配置,static配置静态IP,dhcp为自动获取IP
iface eth1 inet static
#静态IP地址
address 192.168.8.87
#子网掩码
netmask 255.255.255.0
#网关
gateway 192.168.8.1

注:在这里面配置DNS并不起作用,没啥卵用。

2、重启网络配置
(1)遇到问题-1
执行 /etc/init.d/networking restart

Restarting networking (via systemctl): networking.service[ 5705.038541] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready
[ 5705.378501] Micrel KSZ8081 or KSZ8091 20b4000.ethernet-1:02: attached PHY driver [Micrel KSZ8081 or KSZ8091] (mii_bus:phy_addr=20b4000.ethernet-1:02, irq=POLL)
[ 5705.405629] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready
Job for networking.service failed because the control process exited with error code.
See "systemctl status networking.service" and "journalctl -xe" for details.
 failed!
root@npi:~# [ 5707.448000] fec 2188000.ethernet eth1: Link is Up - 100Mbps/Full - flow control rx/tx
[ 5707.456065] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready

这种情况不要纠结,直接 reboot 重启,然后就可以用了。
注:修改完**/etc/network/interfaces**要重启后才能生效。

  • 3、结果测试

    然后可以ping通外网IP,但是还不支持域名解析。

三、配置DNS

1、关于这个DNS配置做了很多尝试,大概有以下几种方法。
配置**/etc/resolv.conf**,我才用的也是这种,但是要解决重启后重置的问题。
配置**/etc/sysconfig/network-scripts/ifcfg-ethx**,这个方法适用于CentOS、Redhat,Debian没这个目录。
配置**/etc/nework/interfaces**,通过参数dns-nameservers指明DNS,验证没有成功。
2、配置/etc/resolv.conf
配置上DNS:

nameserver 114.114.114.114
nameserver 8.8.8.8

然后重启网络:

/etc/init.d/networking restart

这时就应该能够ping通外网的域名。

3、解决/etc/resolv.conf重启后重置问题
这个问题是由于系统启动时**/etc/resolv.conf**被重新初始化为127.0.0.1了,但实在找不到被初始化的位置,所以曲线救国了一下。

(1)创建一个网络初始化脚本
networkcfg.sh

vi /root/networkcfg.sh
#!/bin/sh

sleep 3
echo "nameserver 114.114.114.114" > /etc/resolv.conf
echo "nameserver 8.8.8.8" >> /etc/resolv.conf
/etc/init.d/networking restart

注:sleep 3秒是为了等 resolv.conf 文件被初始化完后再修改。 实现的就是把要配置的DNS重新写入到resolv.conf,然后重启网络。

(2)在系统启动脚本中调用
/etc/rc.local

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

/root/networkcfg.sh &


exit 0

接着重启测试则可以看到DNS是生效的。
注:启动脚本配置看 Debian 10 配置开机自启动脚本

猜你喜欢

转载自blog.csdn.net/weixin_38090079/article/details/131676737