재부팅하지 않고 기본 Mac OSX 라우팅 테이블을 재로드하는 방법


71

인사말,

vpncVPN 클라이언트에 사용 하고 있습니다. 또한 route로컬 네트워크 등에 계속 액세스 할 수 있도록 까다로운 작업을 수행하고 있습니다 (여기서는 그다지 중요하지 않습니다).

때때로 나는 라우팅 테이블을 얻었으므로 ping: sendto: Network is unreachable다른 방법으로 해결해야 할 URL을 얻습니다 .

현재 Mac OS X을 재시동하면 모든 것이 정상으로 돌아옵니다. 전체 시스템을 재부팅 하지 않고 라우팅 테이블을 "기본"(예 : 부팅시 설정)으로 재설정하고 싶습니다 .

1 단계는 route flush(모든 경로를 제거 하는 것)이라고 생각합니다 . 그리고 2 단계는 모든 기본 경로를 다시로드해야합니다.

이 작업을 수행하는 방법에 대한 생각이 있습니까? (예 : 2 단계 란 무엇입니까?)

편집 또한, 나는 또 다른 증상이 traceroute해당 주소에서 실패한다는 것을 알았습니다 . 예를 들어 :

traceroute the.good.dns.name

traceroute: bind: Can't assign requested address

답변:


64

경로를 플러시해야합니다. route -n flush를 여러 번 사용하십시오 . 그런 다음 경로 추가로 경로를 추가하십시오.


1
이 답변을 허용되는 답변으로 변경했습니다. 효과가있다! 내가 그랬어 route -n flush몇 번하고 난 그냥 시스템 환경 설정을 통해 내 네트워킹을 다시 시작됩니다. 돌아와서 이것을 알아내는 데 1 년 밖에 걸리지
Nate Murray

이로 인해 특히 무선 네트워크를 전환 할 때 "요청한 주소를 할당 할 수 없음"오류가 발생하기 쉬운 Sonicwall의 Aventail Connect VPN 클라이언트와 비슷한 문제가 해결되었습니다. 이제 전원 사이클을 피하지 않는 해결 방법이 있습니다. 감사!
Alan Donnelly

와! BarracudaVPN의 문제에 도움이되었습니다. Wi-Fi를 껐다가 다시 켜면 마지막으로 다시 연결할 수 있습니다! 고마워요!
hans_meine

19

가정용 OpenVPN 서버를 사용하고 Mac의 Tunnelblick 응용 프로그램을 사용하여 연결하는 동안이 문제가 발생했습니다.

내 끝에서 일어난 일은 VPN으로 연결을 끊은 후 내 집 IP가 대상이고 잘못된 게이트웨이가 남은 경로입니다. 이 경로를 삭제하면 문제가 해결되었습니다.

$ sudo route -n delete the.good.dns.name

예 : 학교에 있고 컴퓨터를 새로 부팅 한 후 무선 네트워크에 연결합니다. Tunnelblick을 사용하여 가정용 OpenVPN 서버에 연결합니다.

$ netstat -nr
Destination                   Gateway
....
[home-ip]/32                  [school-default-gateway-1] ....
....

VPN 서버에서 연결을 끊습니다. 무선 네트워크를 변경합니다. 기본 게이트웨이가 변경됩니다.

$ netstat -nr
Destination                   Gateway
...
[home-ip]/32                  [school-default-gateway-1] ...
...
$ ping [home-ip]
PING [home-ip]: 56 data bytes
ping: sendto: Network is unreachable
ping: sendto: Network is unreachable
Request timeout for icmp_seq 0
...

이 상황이 발생하면 어떤 상황에서도 내 홈 네트워크 (VPN, 핑 등)에 연결할 수 없습니다. 그런 다음 경로를 삭제하면

$ sudo route -n delete [home-ip]
delete net [home-ip]
$ ping [home-ip]
PING [home-ip]: 56 data bytes
64 bytes from [home-ip]: icmp_seq=1 ttl=56 time=13.111 ms

잘 작동합니다.

OpenVPN 서버 / 클라이언트가 어떻게 구성되는지에 문제가있을 수 있습니다 (이것을 찾는 데 관심이 있습니다). 그러나이 경로 삭제를 자동화하는 Tunnelblick post-disconnect 스크립트를 설치했습니다.


나는 실제로 비슷한 문제가 있습니다. 정말 짜증나.
Tom Busby

예제 ovpn 스크립트를 사용해도 동일한 문제가 발생합니다. 내가 찾은 유일한 해결책은 후 분리 스크립트에 경로를 삭제에, 영업 이익과 동일합니다 : /
jklp

연결을 끊을 때마다이 스크립트를 자동으로 실행할 수있는 방법이 있습니까?
Whitecat

@ 화이트 캣 네! 이것을 확인하십시오 : superuser.com/a/1305361
Elad Nava

13

먼저 네트워크 인터페이스에 대한 경로가 필요합니다. VPN 연결이 끊어지면 네트워크 인터페이스를 중단 한 다음 ifconfig로 다시 가져 오십시오. 그런 다음 경로 명령을 사용하여 기본 gw를 빌드하십시오. 그래서 같은 :

ifconfig en0 down

ifconfig en0 up

route add <ip address> default


1
예, 그러나 Mac OS X은 기본 경로의 IP 주소가 무엇인지 어떻게 알 수 있습니까? 내가 정말로보고 싶은 것은 Mac OS X이 부팅 프로세스를 수행하고 정확히 동일한 작업을 수행하는 방법입니다.
Nate Murray

1
...? DHCP에서 가져옵니다 ...
Jordan Eunson

5

홈 네트워크와 회사 네트워크를 전환 할 때 기본 경로가 삭제되지 않았다는 점에서 @Sean과 동일한 문제가 발생했습니다 (OS X도 실행 중임).

완전성을 위해 집에서 VPN에 연결하고 다음 명령을 실행하면 아래와 같은 기본 게이트웨이가 표시됩니다.

$ netstat -nr
Destination                   Gateway
...
[home-ip]/32                  [work-default-gateway-1]

연결을 끊어도 [home-ip] 게이트웨이는 여전히 존재합니다. 회사 네트워크에 연결할 때 인터넷에 전혀 연결할 수 없었고 OP와 같은 문제가 발생했습니다.

$ traceroute the.good.dns.name    
$ traceroute: bind: Can't assign requested address

그런 다음 경로를 수동으로 삭제해야합니다.

$ sudo route -n delete [home-ip]

처음에는 post-disconnect.sh스크립트 에 "route -n delete"를 넣었 지만 약간 지저분해서 대신이 링크를 찾았습니다.

https://code.google.com/p/tunnelblick/issues/detail?id=177

분명히 이유는 내 .ovpn파일에 다음을 설정했기 때문입니다.

user nobody
group nogroup

이는 루트가 루트로 설정되었지만 연결이 끊어지면 더 이상 루트가 아니므로 루트를 삭제할 수 없습니다.

.ovpn파일 에서이 두 줄을 주석 처리하면 을 사용할 필요없이 문제가 해결되었습니다 post-disconnect.sh.


고마워, 이것은 나를 위해 일했다. 안타깝게도 Google 코드 링크가 더 이상 작동하지 않습니다.
Toby

귀하의 제안을 사용하여 시도했지만 문제는 VPN에 연결하면 구성 파일을 어딘가에서 가져 와서 변경 사항을 덮어 씁니다. 내가 파일을 변경해도 문제가 해결되지 않기 때문에 서버에서 가져 오는 것이 아닙니다. 이러한 파일을 찾아서 변경 / 수정할 수 있도록 파기 / 수정할 수있는 클라이언트 측 위치가 있습니까?
Finncent Price

~ / Library와 / Library를 혼동하는 사소한 오류가 발생했습니다. 죄송합니다! 이 글을 읽는 사람이라면 ~ / Library / Application Support / Tunnelblick / Configurations / <vpnname> .tblk / Contents / Resources
Finncent Price at 10/24
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.