모든 기본 게이트웨이를 제거하는 방법 실행하십시오. /sbin/route add default

사용자 정의 빌드 Linux 시스템을 실행 중이므로 모든 Linux 명령을 사용할 수있는 것은 아닙니다 .
네트워크 관련 명령을 실행하므로 명령을 실행하기 직전에 기본 게이트웨이설정 한 다음 바로 해당 게이트웨이를 제거해야합니다.

그렇게하려면 모든 명령을 한 줄로 실행하십시오.

/sbin/route add default gw 10.10.10.10;my command;/sbin/route del default gw 10.10.10.10;

문제는 어떤 이유로 한 번 같은 컴퓨터에서 2 개의 기본 게이트웨이를 발견했기 때문에 테스트를 실행하기 전에 기본 게이트웨이를 설정해도 여전히 엉망이되어 테스트를 실행할 수 없기 때문에 모든 명령이 실패했습니다.

하나의 명령으로 모든 기본 게이트웨이제거 하는 방법이 있습니까? 나는 많은 양의 머신을 가지고 있으며 모든 머신에 스크립트를 설치하는 것은 실용적이지 않습니다. 다음과 같은 간단한 명령이 필요합니다 .

/sbin/route del all default;set my default gw;mycommand;/sbin/route del all default;

지금까지 내가 찾은 것은 기본 게이트웨이 를 제거하는 명령 이지만 전부
/sbin/route del default작동하지는 않습니다.

/sbin/route help는 다음을 표시합니다

/sbin/route --help

Usage: route [{add|del|delete}]

Edit the kernel's routing tables

Options:
        -n      Don't resolve names
        -e      Display other/more information
        -A inet Select address family


답변

ip대신에 를 사용 route하면 간단하게 실행할 수 있습니다.

ip route del 0/0

나는 그것이 모든 기본 경로를 잡는다고 생각합니다.


답변

를 사용하여 모든 기본 게이트웨이를 제거하려면 ip

ip route flush 0/0

답변

코드가 여러 개의 기본 게이트웨이로 중단되면 장치 당 여러 개의 IP 주소를 찾아야합니다.

이미받은 것처럼 여기에 대한 대답은 또 다른 방법은 당신이해야 같다 결코 당신이 / 실행 스크립트를 테스트 할 이유만으로 시스템의 구성을 변경하지 않습니다. 대신 네트워크 네임 스페이스를 사용하는 것은 어떻습니까. NS (네임 스페이스)에 가상 장치를 추가하는 방법에 대한 간단한 소개는 http://code.google.com/p/coreemu/wiki/Namespaces 를 참조 하십시오 .

test라는 네임 스페이스를 만들고이 네임 스페이스에서 명령을 실행하려면 다음을 실행하십시오.

ip netns add test
ip netns exec test COMMAND

여기서 COMMAND는 예를 들어 쉘 또는 서버 스크립트 일 수 있습니다.


답변

모든 대답은 훌륭하지만 다른 접근 방식을 사용 하여이 문제를 해결했습니다. 명령을 사용하여 하나의 기본 게이트웨이 만 추가했지만 이미있는 경우 실패합니다. 따라서 결국 명령 끝에 잘못된 게이트웨이를 제거하십시오. 이것은 두 번째 isa에서 작동해야합니다.

ip route add default via my-gateway
ip route del default