2개의 인터페이스를 동적으로 구성하는 명령 ip route add
과 ifconfig
systemctl 서비스 arp
가 있습니다 . ethtool
어쨌든 몇 초/분 후 또는 무작위로 구성이 사라집니다(IP가 더 이상 할당되지 않고 경로 및 arp 항목이 사라짐).
이 문제를 어떻게 디버깅하고 내 설정이 사라지는 이유는 무엇입니까?
[Unit]
After=network-online.target
[Service]
ExecStart=/usr/local/bin/routingsf.sh enp4s0f0 enp4s0f1
[Install]
WantedBy=network-online.target
Avahi-daemon
원하지 않는데도 방송을 위해 패킷을 보내는 등의 똥 프로세스가 많이 있습니다 . 이러한 인터페이스는 테스트 목적으로 사용되며 이러한 인터페이스를 통해 원치 않는 패킷을 보내고 싶지 않습니다.
답변1
인터페이스 열이 있으면 nmcli device status
NetworkManager가 해당 열을 인수한다는 의미입니다.disconnected
STATE
enp4s0f0
enp4s0f1
루트로 다음 명령을 실행하십시오:
nmcli device set enp4s0f0 managed no
nmcli device set enp4s0f1 managed no
NetworkManager에게 이러한 장치에 손을 대지 말라고 지시하십시오. 이렇게 하면 문제가 해결될 것입니다. 일반적으로 NetworkManager는 재부팅 후에도 유지되도록 이러한 설정을 자동으로 저장해야 하지만 이는 사용 중인 Linux 배포판에 따라 달라질 수 있습니다.
이후에는 nmcli device status
이러한 네트워크 인터페이스의 상태가 로 나타나야 하며 unmanaged
이는 NetworkManager의 간섭 없이 이러한 인터페이스를 수동으로 구성할 수 있음을 나타냅니다.
시스템 서비스에 대한 추가 정보: routingsf.sh
영구적으로 실행할 항목을 포함하지 않고 , 및 와 같은 명령을 "한 번 설정하면 완료"되는 경우 ip route add
서비스 파일 섹션에 몇 줄을 추가 할 수 있습니다 .ifconfig
arp
ethtool
[Service]
Type=oneshot
RemainAfterExit=yes
서비스 유형을 지정하지 않으면 systemd는 하나를 가정합니다 Type=simple
. 즉, 시작된 프로세스는 ExecStart=
의도적으로 중지될 때까지 영원히 실행될 것으로 예상됩니다. 이렇게 하지 않으면 routingsf.sh
systemd는 ExecStart 명령이 종료되는 것을 확인하고 서비스를 실패로 표시합니다.
Type=oneshot
+ 조합은 RemainAfterExit=yes
스크립트가 일부 작업을 수행한 다음 종료될 것으로 예상된다는 것을 systemd에 알리고, 스크립트가 성공적으로 종료되면 systemd는 서비스 상태를 "실행 중"으로 표시해야 합니다. ExecStop=
표준 명령을 사용하여 이러한 설정을 쉽게 끄고 켜려면 systemctl
해당 옵션을 추가할 수 있는 옵션이 있습니다.