모든 기본 게이트웨이를 삭제하는 방법

모든 기본 게이트웨이를 삭제하는 방법

저는 맞춤형 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도움말에는 다음이 표시됩니다.

/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

답변1

ip대신 사용하는 경우 route간단히 다음을 실행할 수 있습니다.

ip route del 0/0

나는 그것이 모든 기본 경로를 포착한다고 믿습니다.

답변2

모든 기본 게이트웨이를 제거하려면 다음을 사용하십시오.ip

ip route flush 0/0

답변3

모든 답변이 좋지만 다른 접근 방식을 사용하여 이 문제를 해결했습니다. 명령을 사용하여 기본 게이트웨이만 추가했는데 기본 게이트웨이가 이미 있으면 실패했습니다. 따라서 명령이 끝나면 결국 잘못된 게이트웨이가 삭제됩니다. 이 작업은 두 번째에도 작동합니다.

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

답변4

해결됐어
https://github.com/hub4ops/vagrant/blob/main/Vagrantfile

Vagrant.configure("2") do |config|    
  config.vm.box = "ubuntu/trusty64"    
  config.vm.network "public_network", bridge: "Intel(R) Dual Band Wireless-AC 7265"    
  config.vm.provision "shell", inline: <<-SHELL    
    ip route del 0/0
    ip route add 0.0.0.0/0 via 192.168.1.1
    echo "nameserver 8.8.8.8" > /etc/resolv.conf
  SHELL
end

관련 정보