Ssh
在具有活動 OpenVPN 客戶端的伺服器上允許 SSH
我有一個執行 CentOS 7 的 VPS,我通過 SSH 連接到它。我想在 VPS 上執行一個 OpenVPN 客戶端,以便通過 VPN 路由網際網路流量,但仍然允許我通過 SSH 連接到伺服器。當我啟動 OpenVPN 時,我的 SSH 會話斷開連接,我無法再連接到我的 VPS。如何配置 VPS 以允許在 VPS 的實際 IP (104.167.102.77) 上打開傳入的 SSH(埠 22)連接,但仍通過 VPN 路由傳出流量(如來自 VPS 上的 Web 瀏覽器)?
我使用的 OpenVPN 服務是 PrivateInternetAccess,範例 config.ovpn 文件是:
客戶 開發屯 原型 udp 遠端 nl.privateinternetaccess.com 1194 無限重試 無拘無束 持久鍵 堅持頓 ca ca.crt tls-客戶端 遠端證書 tls 伺服器 身份驗證使用者通行證 comp-lzo 動詞 1 叛逆秒 0 crl-驗證 crl.pem
VPS的ip地址:
1: lo: man 65536 qdisc noqueue state UNKNOWN 連結/環回 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 範圍主機 lo valid_lft 永遠首選_lft 永遠 inet6 ::1/128 範圍主機 valid_lft 永遠首選_lft 永遠 2: ens33: mtu 1500 qdisc pfifo_fast 狀態 UP qlen 1000 連結/乙太 00:50:56:be:16:f7 brd ff:ff:ff:ff:ff:ff inet 104.167.102.77/24 brd 104.167.102.255 範圍全球 ens33 valid_lft 永遠首選_lft 永遠 inet6 fe80::250:56ff:febe:16f7/64 範圍連結 valid_lft 永遠首選_lft 永遠 4: tun0: mtu 1500 qdisc pfifo_fast 狀態 UNKNOWN qlen 100 連結/無 inet 10.172.1.6 對等 10.172.1.5/32 範圍全域 tun0 valid_lft 永遠首選_lft 永遠
VPS的ip路由:
0.0.0.0/1 通過 10.172.1.5 開發 tun0 預設通過 104.167.102.1 dev ens33 proto static metric 1024 10.172.1.1 通過 10.172.1.5 開發 tun0 10.172.1.5 dev tun0 proto 核心範圍連結 src 10.172.1.6 104.167.102.0/24 dev ens33 proto kernel scope link src 104.167.102.77 109.201.154.177 通過 104.167.102.1 開發 ens33 128.0.0.0/1 通過 10.172.1.5 開發 tun0
我遇到了與此類似的問題,並且一直在嘗試此論壇文章中描述的修復程序。
這個想法是,目前當您連接到您的公共 IP 地址時,返回的數據包正在通過 VPN 路由。您需要強制這些數據包通過您的公共介面進行路由。
這些路由命令有望解決問題:
從 xxxx 表 128 添加 ip 規則
ip route 將表 128 添加到 yyyy/y dev ethX
ip route add table 128 default via zzzz
其中 xxxx 是您的公共 IP,yyyy/y 應該是您的公共 IP 地址的子網,ethX 應該是您的公共乙太網介面,zzzz 應該是預設網關。
請注意,這對我不起作用(使用 Debian 和 PrivateInternetAccess),但可能會對您有所幫助。