내 마더보드에서 eth1의 MAC 주소와 IP 주소를 설정하기 위해 systemd를 사용하려고 합니다.
MAC 주소
MAC 주소를 설정하기 위해 다음 서비스가 생성됩니다.
/lib/systemd/system/eth1mac.service
[Unit]
Description=Setting up MAC address
Before=network.target
[Service]
ExecStart=/bin/sh /etc/eth1mac
[Install]
WantedBy=multi-user.target
서비스는 여기에서 쉘 스크립트를 가리킵니다.
/etc/eth1mac
#!/bin/sh
ifconfig eth1 down
ifconfig eth1 hw ether 00:11:22:33:44:55
ifconfig eth1 up
이것은 잘 작동합니다.
IP 주소
IP 주소를 설정하기 위해 다음 서비스가 생성되었습니다.
/lib/systemd/system/eth1ip.service
[Unit]
Description=Setting up eth1 IP address
Wants=network-online.target
After=network-online.target
[Service]
ExecStart=/bin/sh /etc/eth1ip
[Install]
WantedBy=multi-user.target
서비스는 여기에서 쉘 스크립트를 가리킵니다.
/etc/eth1ip
#!/bin/sh
ifconfig eth1 192.168.160.218
질문
서비스가 실행 중이지만 보드를 재부팅할 때마다 호출되지 않습니다. 재부팅 시 서비스가 다시 실행되도록 하려면 몇 가지 종속성이 필요합니까?
답변1
네트워크 구성이 통과되었습니다..network
그리고.link
systemd를 사용할 때의 파일시스템 네트워크. 이러한 파일의 기본 위치는 입니다 /etc/systemd/network
.
예: MAC 주소 이름을 사용하여 74:d1:2c:2c:6e:d8
인터페이스 이름을 다음으로 변경 phy0
하고 MAC 주소를 11:22:33:44:55:66
다음으로 변경합니다 /etc/systemd/network/10-phy0.link
.
[Match]
# Match card's MAC address
PermanentMACAddress=74:d1:2c:2c:6e:d8
[Link]
Description=Ethernet Port 1
# Rename interface to phy0
Name=phy0
# Override MAC address (spoof MAC address)
MACAddress=11:22:33:44:55:66
IP 주소 설정 /etc/systemd/network/phy0.network
:
[Match]
# Match interface name
Name=phy0
[Network]
Description=Interface phy0 (network)
DHCP=no
# Static IPv4 or IPv6 address with CIDR
Address=192.168.1.123/24
Gateway=192.168.1.1
# DNS server address
DNS=192.168.1.1
Domains=mynetwork.lan
답변2
이를 위해 systemd를 사용해야합니까? 유지 관리가 어렵고 빠르게 지저분해질 수 있으므로 사용자 정의 셸 스크립트를 사용하여 자신만의 시스템 서비스를 만드는 것을 권장하지 않습니다.
인터페이스에서 고정 IP 주소와 MAC 주소를 설정하는 보다 일반적인 방법은 구성 파일에서 설정하는 것입니다 /etc/network/interfaces
(Debian 기반 Linux 시스템 가정).
예를 들어 다음을 구성에 추가합니다.
auto eth1
iface eth1 inet manual
address 192.168.160.218
netmask 255.255.255.0
hwaddress ether 00:11:22:33:44:55
다음을 사용하여 네트워크 인터페이스를 구성하는 방법도 있습니다.시스템 네트워크데몬은 systemd의 일부입니다. .network
구성하려는 인터페이스에 적합한 파일을 편집해야 합니다 . 그러면 Systemd-networkd는 시작 중에 이 인터페이스를 구성해야 합니다.