Hãy xem xét kịch bản sau đây:
- VPS của bạn có giao diện ethernet duy nhất, được định cấu hình với địa chỉ IP 4.3.2.1/24;
- VPS của bạn có thể truy cập Internet thông qua cổng mặc định 4.3.2.254
- VPS của bạn đã không chưa kích hoạt bất kỳ kết nối OpenVPN; do đó không có giao diện điều chỉnh hoạt động
Trong trường hợp như vậy, từ máy của bạn (giả sử máy của bạn là 9.8.7.6/24 với def-gw 9.8.7.254), bạn có thể thiết lập thành công kết nối SSH đến 4.3.2.1. Do đó, cả hai máy chủ 4.3.2.1 và 9.8.7.6 đều có thể tiếp cận nhau.
Bây giờ, với kết nối SSH được thiết lập, hãy giả sử:
- bạn khởi chạy kết nối OpenVPN từ VPS 4.3.2.1;
- như vậy, giao diện tun0 mới sẽ được định cấu hình thực tế (giả sử nó sẽ được gán IP 10.10.10.2, với PTP 10.10.10.1).
Ở giai đoạn này:
Nếu không có tuyến đường nào sẽ được đẩy từ máy chủ OpenVPN từ xa sang VPS cục bộ của bạn, thì sẽ không có gì thay đổi về mặt định tuyến và kết nối SSH của bạn sẽ tồn tại mà không gặp vấn đề gì. Trong trường hợp này, lưu lượng truy cập duy nhất đi qua VPN là lưu lượng truy cập hướng tới Máy chủ OpenVPN từ xa (10.10.10.1);
NẾU máy chủ OpenVPN từ xa sẽ đẩy lùi một số tuyến đường và đặc biệt là nếu cổng mặc định của VPS sẽ được thay thế bằng 10.10.10.1 (điểm cuối OpenVPN từ xa), THÌ bạn đang gặp vấn đề. Trong trường hợp này, bạn đang tạo đường hầm TẤT CẢ lưu lượng IP gửi đi (ngoại trừ chính OpenVPN) trong VPN.
Trong trường hợp thứ hai này (thay thế def-gw ngay sau khi thiết lập kết nối VPN), kết nối SSH trước đó của bạn sẽ "treo", do định tuyến không đối xứng:
- Lưu lượng truy cập từ máy của bạn (9.8.7.6) đến VPS (4.3.2.1) sẽ chảy qua đường dẫn trước đó, không bao giờ thay đổi;
- Lưu lượng truy cập từ VPS (4.3.2.1) đến máy của bạn (9.8.7.6):
- không có VPN (do đó, ban đầu) đã được định tuyến qua cổng 4.3.2.254;
- sau khi thiết lập liên kết VPN, với sự thay thế def-gw có liên quan, được định tuyến thông qua VPN (10.10.10.1).
Nói cách khác: ngay khi liên kết VPN được thiết lập, tuyến trở về từ VPS đến máy của bạn sẽ thay đổi và ... đây không phải là điều tốt (một số thiết bị mạng, dọc theo đường trở về, có thể nhận ra như vậy không đối xứng đường dẫn và chỉ cần thả gói tin).
Hơn nữa, rất có thể máy chủ OpenVPN từ xa của bạn hoạt động như một hộp NAT: tất cả lưu lượng truy cập đến từ VPN sẽ được NAT với Địa chỉ IP công cộng của Máy chủ OpenVPN từ xa. Nếu điều này là đúng, thì mọi thứ không còn nữa ... "không tốt", nhưng chắc chắn là "xấu", đối với kết nối SSH của bạn: lưu lượng truy cập trở lại, ngoài việc quay lại theo một tuyến đường khác, sẽ quay trở lại máy của bạn với một IP nguồn khác nhau (một trong những giao diện chung của máy chủ VPN).
Làm thế nào để giải quyết vấn đề này?
Khá dễ dàng, thực sự.
Chỉ cần hướng dẫn máy chủ VPS của bạn không định tuyến lưu lượng truy cập đến máy của bạn dọc theo VPN, nhưng, thay vào đó, dựa vào tuyến đường trước đó . Nó phải dễ dàng như thêm, trước khi bắt đầu OpenVPN:
route add -host 9.8.7.6 gw 4.3.2.254
Ở đâu:
- 9.8.7.6 là địa chỉ IP công khai trên máy của bạn
- 4.3.2.254 là cổng mặc định ban đầu của VPS của bạn.
PS: bằng cách cung cấp một câu hỏi chi tiết hơn nhiều, bạn sẽ nhận được câu trả lời nhanh hơn nhiều :-)