Cách tải lại bảng định tuyến Mac OSX mặc định mà không cần khởi động lại


71

Lời chào hỏi,

Tôi đang sử dụng vpnccho một máy khách VPN. Tôi cũng đang thực hiện một số điều khó khăn routeđể đảm bảo rằng tôi vẫn có thể truy cập mạng cục bộ của mình, v.v. (các chi tiết ở đây không quan trọng lắm).

Đôi khi tôi nhận được bảng định tuyến vì vậy tôi đã nhận được ping: sendto: Network is unreachablecác url cần giải quyết.

Hiện tại, nếu tôi khởi động lại Mac OS X thì mọi thứ đã trở lại bình thường. Những gì tôi muốn làm là đặt lại các bảng định tuyến về "mặc định" (ví dụ: những gì nó được đặt thành khi khởi động) mà không cần khởi động lại toàn bộ hệ thống.

Tôi nghĩ rằng bước 1 là route flush(để loại bỏ tất cả các tuyến đường). Và bước 2 cần tải lại tất cả các tuyến mặc định.

Bất kỳ suy nghĩ về cách làm điều này? (ví dụ bước 2 là gì?)

EDIT Ngoài ra, tôi nhận thấy một triệu chứng khác traceroutecũng không thành công trên địa chỉ được đề cập. Ví dụ:

traceroute the.good.dns.name

traceroute: bind: Can't assign requested address

Câu trả lời:


64

Bạn cần phải tuôn ra các tuyến đường. Sử dụng tuyến đường -n tuôn ra nhiều lần. Sau đó thêm các tuyến đường của bạn với tuyến đường thêm.


1
Tôi đã thay đổi điều này thành câu trả lời được chấp nhận. Nó hoạt động! Tôi đã làm route -n flushvài lần, sau đó tôi chỉ khởi động lại mạng của mình thông qua các tùy chọn Hệ thống. Tôi chỉ mất một năm để quay lại và tìm ra điều này :)
Nate Murray

Điều này đã giải quyết một vấn đề tương tự đối với tôi với ứng dụng khách Aventail Connect VPN của Sonicwall mà tôi thấy đặc biệt dễ bị lỗi "Không thể gán địa chỉ được yêu cầu", đặc biệt là khi chuyển đổi mạng không dây. Bây giờ tôi có một cách để giải quyết mà không tránh được chu kỳ điện. Cảm ơn!
Alan Donnelly

Ồ Nó cũng giúp giải quyết vấn đề của tôi với BarracudaVPNạn Tôi tắt / bật Wi-Fi và cuối cùng có thể kết nối lại! Cảm ơn rất nhiều!
hans_meine

19

Tôi đã gặp phải vấn đề này khi sử dụng máy chủ OpenVPN tại nhà và kết nối với nó bằng ứng dụng Tunnelblick trên Mac.

Điều cuối cùng đã xảy ra là một tuyến đường với IP nhà của tôi là đích đến và một cổng không chính xác đang bị bỏ lại sau khi ngắt kết nối với VPN. Xóa tuyến đường này đã giải quyết vấn đề, đơn giản

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

Ví dụ: Tôi đang ở trường và sau khi khởi động máy tính mới, tôi kết nối với mạng không dây. Tôi kết nối với máy chủ OpenVPN tại nhà của mình bằng Tunnelblick.

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

Tôi ngắt kết nối với máy chủ VPN. Tôi thay đổi mạng không dây. Điều này thay đổi cổng mặc định của tôi.

$ 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
...

Trong mọi trường hợp, tôi không thể kết nối với mạng gia đình của mình (VPN, ping, bất cứ điều gì) sau khi điều này xảy ra. Nếu tôi sau đó chỉ cần xóa tuyến đường:

$ 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

Nó hoạt động tốt.

Có thể có một vấn đề với cách máy chủ / máy khách OpenVPN được cấu hình để rời khỏi điều này (và tôi muốn tìm hiểu xem đó là gì), nhưng tôi đã cài đặt tập lệnh ngắt kết nối đường hầm tự động xóa tự động xóa tuyến đường này.


Tôi thực sự có một vấn đề tương tự ở đây. Thực sự gây phiền nhiễu.
Tom Busby

Tôi đang gặp vấn đề tương tự, ngay cả với kịch bản ovpn mẫu. Giải pháp duy nhất tôi tìm thấy giống như OP, trong việc xóa tuyến đường trong tập lệnh ngắt kết nối: /
jklp

Có cách nào để tự động chạy tập lệnh này trên mỗi lần ngắt kết nối không?
Whitecat

@Whitecat Vâng! Kiểm tra này: superuser.com/a/1305361
Elad Nava

13

Trước tiên, bạn cần một tuyến đường cho giao diện mạng của bạn. Nếu VPN bị ngắt kết nối thì chỉ cần gỡ giao diện mạng của bạn xuống và sau đó đưa nó trở lại với ifconfig. Sau đó sử dụng commnand tuyến để xây dựng trong gw mặc định của bạn. Vì vậy, một cái gì đó như:

ifconfig en0 down

ifconfig en0 up

route add <ip address> default


1
Có, nhưng làm thế nào để Mac OS X biết địa chỉ IP của tuyến mặc định là gì? Điều tôi thực sự muốn thấy là cách Mac OS X thực hiện quá trình khởi động và thực hiện chính xác điều tương tự.
Nate Murray

1
...? Nó nhận được từ DHCP ...
Jordan Eunson

5

Tôi đã gặp vấn đề tương tự như @Sean (Tôi cũng đang chạy OS X), khi tôi chuyển đổi giữa mạng gia đình và mạng công việc, tuyến đường mặc định sẽ không bị xóa.

Để đầy đủ, khi tôi kết nối với VPN của mình ở nhà và chạy lệnh sau, nó sẽ hiển thị cổng mặc định như bên dưới

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

Và khi tôi ngắt kết nối, cổng [home-ip] vẫn ở đó. Khi tôi kết nối với mạng công việc của mình, tôi hoàn toàn không thể kết nối với internet và gặp phải vấn đề tương tự như OP

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

Sau đó tôi phải xóa thủ công với

$ sudo route -n delete [home-ip]

Ban đầu tôi đặt "lộ trình -n xóa" trong một post-disconnect.shtập lệnh, nhưng điều đó hơi lộn xộn nên thay vào đó tôi tìm thấy liên kết này

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

Rõ ràng lý do là do thiết lập các mục sau trong .ovpntệp của tôi

user nobody
group nogroup

Điều đó có nghĩa là tuyến đường được thiết lập là root, nhưng khi kết nối bị mất, người dùng không còn root nữa, vì vậy tuyến đường không thể bị xóa.

Nhận xét 2 dòng này trong .ovpntệp của tôi đã khắc phục sự cố mà không phải sử dụng a post-disconnect.sh.


Cảm ơn, điều này làm việc cho tôi là tốt. Thật không may là liên kết mã google không hoạt động nữa.
Toby

Tôi đã thử sử dụng đề xuất của bạn, vấn đề là khi tôi kết nối với VPN, nó sẽ kéo các tệp cấu hình từ đâu đó và ghi đè lên các thay đổi của tôi. Nó không nhận được chúng từ máy chủ, theo như tôi có thể biết vì khi tôi thay đổi những tập tin đó thì nó không khắc phục được vấn đề. Có một số vị trí phía máy khách nơi tôi có thể tìm thấy các tệp này và hủy / sửa đổi chúng để các thay đổi của tôi sẽ ổn định không?
Giá tài chính

Tôi đã phạm phải lỗi nhỏ khó hiểu ~ / Thư viện với / Thư viện. Úi! Đối với bất kỳ ai đọc điều này, bạn muốn sửa đổi tệp trong ~ / Thư viện / Hỗ trợ ứng dụng / Đường hầm / Cấu hình / <vpnname> .tblk / Nội dung / Tài nguyên
Giá Finncent
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.