ifupdown 更改参数 dhclient
ifupdown change parameters dhclient
我有 Ubuntu 20.04,我将所有网络功能都交给了 ifupdown。
我的接口中有 1 个通过 dhclient 获取了网络参数:
#/etc/network/interfaces
allow-hotplug enp2s0
auto enp2s0
iface enp2s0 inet dhcp
Dhclient 以这样的参数启动:
#ps -Af | grep dhclient
/sbin/dhclient -1 -4 -v -i -pf /run/dhclient.enp2s0.pid -lf /var/lib/dhcp/dhclient.enp2s0.leases -I -df /var/lib/dhcp/dhclient6.enp2s0.leases enp2s0
Dhclient 版本:
# dhclient --version
isc-dhclient-4.4.1
客户端配置:
# cat /etc/dhcp/dhclient.conf
option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;
send host-name = gethostname();
request subnet-mask, broadcast-address, time-offset, routers,
domain-name, domain-name-servers, domain-search, host-name,
dhcp6.name-servers, dhcp6.domain-search, dhcp6.fqdn, dhcp6.sntp-servers,
netbios-name-servers, netbios-scope, interface-mtu,
rfc3442-classless-static-routes, ntp-servers;
timeout 60;
retry 60;
reboot 10;
reject 10.100.0.2;
厌倦了 google 如何更改 dhclient 启动的参数(我想在没有 -1 和守护进程模式下启动它),像这样:
/sbin/dhclient -nw -4 -v -pf /run/dhclient.enp2s0.pid -lf /var/lib/dhcp/dhclient.enp2s0.leases -I -df /var/lib/dhcp/dhclient6.enp2s0.leases enp2s0
我该怎么做?
谢谢!
dhclient 运行 参数在 ifupdown 中硬编码,您无法从其他地方更改它。
但我找到了解决办法:
- 将接口设置为静态以防止通过 ifup 命令启动 dhclient
- 运行 dhclient 通过 pre-up hook
使用任何你想要的参数
allow-hotplug enp2s0
auto enp2s0
iface enp2s0 inet static
address 192.168.1.1
netmask 255.255.255.255
pre-up /sbin/dhclient -4 -v -pf /run/dhclient.enp2s0.pid -lf /var/lib/dhcp/dhclient.enp2s0.leases -I -df /var/lib/dhcp/dhclient6.enp2s0.leases enp2s0
pre-down /sbin/dhclient -4 -v -r -pf /run/dhclient.enp2s0.pid -lf /var/lib/dhcp/dhclient.enp2s0.leases -I -df /var/lib/dhcp/dhclient6.enp2s0.leases enp2s0
我有 Ubuntu 20.04,我将所有网络功能都交给了 ifupdown。
我的接口中有 1 个通过 dhclient 获取了网络参数:
#/etc/network/interfaces
allow-hotplug enp2s0
auto enp2s0
iface enp2s0 inet dhcp
Dhclient 以这样的参数启动:
#ps -Af | grep dhclient
/sbin/dhclient -1 -4 -v -i -pf /run/dhclient.enp2s0.pid -lf /var/lib/dhcp/dhclient.enp2s0.leases -I -df /var/lib/dhcp/dhclient6.enp2s0.leases enp2s0
Dhclient 版本:
# dhclient --version
isc-dhclient-4.4.1
客户端配置:
# cat /etc/dhcp/dhclient.conf
option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;
send host-name = gethostname();
request subnet-mask, broadcast-address, time-offset, routers,
domain-name, domain-name-servers, domain-search, host-name,
dhcp6.name-servers, dhcp6.domain-search, dhcp6.fqdn, dhcp6.sntp-servers,
netbios-name-servers, netbios-scope, interface-mtu,
rfc3442-classless-static-routes, ntp-servers;
timeout 60;
retry 60;
reboot 10;
reject 10.100.0.2;
厌倦了 google 如何更改 dhclient 启动的参数(我想在没有 -1 和守护进程模式下启动它),像这样:
/sbin/dhclient -nw -4 -v -pf /run/dhclient.enp2s0.pid -lf /var/lib/dhcp/dhclient.enp2s0.leases -I -df /var/lib/dhcp/dhclient6.enp2s0.leases enp2s0
我该怎么做?
谢谢!
dhclient 运行 参数在 ifupdown 中硬编码,您无法从其他地方更改它。
但我找到了解决办法:
- 将接口设置为静态以防止通过 ifup 命令启动 dhclient
- 运行 dhclient 通过 pre-up hook 使用任何你想要的参数
allow-hotplug enp2s0
auto enp2s0
iface enp2s0 inet static
address 192.168.1.1
netmask 255.255.255.255
pre-up /sbin/dhclient -4 -v -pf /run/dhclient.enp2s0.pid -lf /var/lib/dhcp/dhclient.enp2s0.leases -I -df /var/lib/dhcp/dhclient6.enp2s0.leases enp2s0
pre-down /sbin/dhclient -4 -v -r -pf /run/dhclient.enp2s0.pid -lf /var/lib/dhcp/dhclient.enp2s0.leases -I -df /var/lib/dhcp/dhclient6.enp2s0.leases enp2s0