Làm cách nào để chọn lọc lưu lượng truy cập mạng thông qua VPN trên Mac OS X Leopard?


96

Tôi không muốn gửi tất cả lưu lượng truy cập mạng của mình xuống VPN khi tôi kết nối với mạng của công ty tôi (thông qua VPN) từ nhà. Ví dụ: khi tôi làm việc tại nhà, tôi muốn có thể sao lưu tất cả các tệp của mình vào Time Capsule ở nhà và vẫn có thể truy cập mạng nội bộ của công ty.

Tôi đang sử dụng máy khách VPN tích hợp của Leopard. Tôi đã thử bỏ chọn "Gửi tất cả lưu lượng truy cập qua kết nối VPN." Nếu tôi làm điều đó, tôi sẽ mất quyền truy cập vào các trang web nội bộ của công ty tôi thông qua curl hoặc trình duyệt web (mặc dù IP nội bộ vẫn có thể truy cập được). Thật lý tưởng nếu tôi có thể chọn lọc một cách chọn lọc một bộ IP hoặc tên miền sẽ được định tuyến qua VPN và giữ phần còn lại trên mạng của riêng tôi. Điều này có thể đạt được với máy khách VPN tích hợp của Leopard không? Nếu bạn có bất kỳ đề xuất phần mềm nào, tôi cũng muốn nghe chúng.


2
Giải pháp đầu tiên sẽ chỉ hoạt động trên VPN VPN. Giải pháp sau đây sẽ hoạt động trên Cisco VPN (và các loại khác không có gì cụ thể đối với Cisco) superuser.com/questions/91191/
mẹo

Câu trả lời:


84

Tạo tập tin / etc / ppp / ip-up với nội dung sau:

#!/bin/sh
/sbin/route add <SUBNET> -interface $1 

thay thế <SUBNET>bằng mạng con, bạn muốn định tuyến qua VPN (ví dụ: 192.168.0.0/16)

thực thi như root:

chmod 0755 /etc/ppp/ip-up

Tập tin này sẽ được thực thi mỗi khi bạn kết nối với VPN.

Các tham số được cung cấp cho tập lệnh:

  • $1: Giao diện VPN (ví dụ ppp0)
  • $2: Không biết, là 0trong trường hợp của tôi
  • $3: IP của máy chủ VPN
  • $4: Địa chỉ cổng VPN
  • $5: Cổng thông thường (không phải vpn) cho các kết nối lan của bạn

1
Tiền boa của Koutsei làm việc cho tôi. Tôi chỉ tự hỏi liệu dòng đầu tiên (#! / Bin / sh) có làm gì không. Nó không được bình luận. Tôi đang hỏi điều này vì tôi đang mô tả điều này để sử dụng tại công ty của chúng tôi và càng đơn giản càng tốt :-) Cảm ơn, Edgar
Edgar Wieringa

1
@EdgarWieringa: chuyển đổi câu trả lời của bạn thành một nhận xét. Hy vọng điều đó tốt hơn! :)
studiohack

6
@Edgar - không. Dòng đầu tiên là đặc biệt. vi.wikipedia.org/wiki/Shebang_(Unix)
James Moore

6
Vào ngày 10.7 / Lion, tôi đã may mắn hơn với: / sbin / tuyến thêm 172.16.0.0/16 -interface $ 1 Các đối số tôi thấy ip-up nhận được là: $ 1 = Giao diện VPN, ví dụ: 'ppp0' $ 2 = '0' (không phải chắc chắn giá trị này là bao nhiêu) $ 3 = IP VPN của bạn $ 4 = Cổng công cộng VPN Địa chỉ IP $ 5 = Cổng mặc định thông thường cho ethernet / wifi
Gabe Martin-Dempesy

4
Điều gì xảy ra nếu tôi có hai hoặc nhiều kết nối VPN được định cấu hình? Làm cách nào để phân biệt giữa chúng /etc/ppp/ip-upđể tôi có thể thêm các tuyến đường phù hợp? Tên VPN thân thiện sẽ được thông qua làm đối số thứ 6 ( ipparam)?
Kal

11

Tôi muốn làm một điều tương tự. Kết nối VPN và sau đó định tuyến một mạng bổ sung thông qua VPN đó. Tôi đã kết thúc với bit Applescript sau đây:

-- Connect Work VPN

tell application "System Events"
    tell network preferences
        tell current location
            tell service "Work"
                connect
                tell current configuration
                    repeat until get connected = true
                        delay 1
                    end repeat
                end tell
            end tell
        end tell
    end tell
end tell

set gateway to "192.168.1.1"

do shell script "route add 172.16.0.0/16 " & gateway with administrator privileges

Bạn cần thay đổi "Work"tên của kết nối VPN, 192.168.1.1địa chỉ cổng của bạn và 172.16.0.0/16địa chỉ của mạng mà bạn muốn định tuyến. Các mạng bổ sung có thể được thêm bằng cách lặp lại dòng cuối cùng với các địa chỉ khác nhau.


1
. và không phải một số trang web bên ngoài hoặc bất cứ điều gì.)
Arjan

1
Vậy 192.168.1.1bộ định tuyến của bạn trên VPN, hay bộ định tuyến trên mạng LAN? Và bạn không phải đặt tuyến đường mặc định trở lại mạng LAN?
Jack M.

8

Có một tính năng ẩn trong Tùy chọn mạng trên MacOS: bạn có thể sắp xếp giao diện .

Mở Tùy chọn hệ thống -> Mạng -> Nhấp vào gearphía dưới bên trái ->Set service Order...

<code> Đặt đơn hàng dịch vụ ... </ code> Đặt hàng VPN

Điều quan trọng là bạn phải sắp xếp các giao diện mạng theo thứ tự bạn muốn sử dụng chúng. Nếu bạn muốn TẤT CẢ dữ liệu không phải mạng LAN đi đến VPN, hãy đặt giao diện VPN ở trên cùng. Sắp xếp như thế này

  1. VPN
  2. Ethernet
  3. Sân bay

Không như thế này:

  1. Sân bay
  2. Ethernet
  3. VPN

Bằng cách này, không cần kiểm tra cài đặt sau trong Session Options:

Gửi tất cả lưu lượng truy cập qua kết nối VPN

Đã kiểm tra L2TP VPNkết nối


Tôi không nghĩ điều này trả lời câu hỏi, trừ khi OP đang sao lưu vào Time Machine thông qua Ethernet và kết nối với mạng công ty xem Sân bay (Kết nối không dây)
Josh Newman

1
Tôi đã sử dụng thủ thuật khởi động ppp, nhưng nó không hoạt động cho đến khi tôi di chuyển kết nối vpn của mình bên dưới kết nối không dây. Đây là một câu trả lời hợp lệ.
Arosboro

Nó thực sự là câu trả lời chính! Cảm ơn rất nhiều, nó sẽ không thể tìm ra!
Andre Soares

1
Điều này không hoạt động đối với VPN L2TP IPSec, nhưng KHÔNG hoạt động đối với VPN IPSec của Cisco. Cisco IPSec VPN không khả dụng trong hộp thoại "Đặt dịch vụ đặt hàng"
goofology

1

Tôi đã có một cái nhìn trực tuyến để xem liệu tôi có thể tìm thấy bất cứ thứ gì không, và theo như tôi có thể hiểu bạn dường như muốn có thể sử dụng máy tính của bạn như bình thường, trong khi cũng có thể kết nối với các trang web của công ty nội bộ, vì vậy, bạn có thể cần thiết lập một bảng định tuyến tùy chỉnh.

Liên kết này rõ ràng chỉ áp dụng cho 10,4, nhưng công cụ dòng lệnh vẫn có thể hoạt động.

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.