Pereiti prie pagrindinio turinio

Kaip prisijungti prie VPN iš serverio, kai nutrūksta SSH ryšys?

Atnaujinta šiandien

Šioje pamokoje pateikiami sprendimai situacijai, kai esate prisijungę prie pirmojo serverio ir bandote užmegzti VPN ryšį su antruoju serveriu, tačiau dėl to nutrūksta SSH sesija.

Naudojami terminai

PC – įrenginys, iš kurio jungiatės per SSH

SERVER1 – jūsų pirmasis serveris

Second Server – jūsų VPN serveris

1. Pirmas sprendimas

Kad SSH srautas ir toliau eitų tiesiai per jūsų PC, o ne per VPN, pridėkite maršrutą jūsų PC IP adresui.


Prisijungti prie serverio galėsite tik iš to įrenginio IP adreso, kurį nurodysite.
Šią komandą vykdykite būdami prisijungę prie savo VPS per SSH.

Container ir Storage VPS:

ip r a PC-IP/32 dev venet0

Linux VPS:

ip r a PC-IP/32 via 169.254.0.1 dev enc3

Vietoje PC-IP įrašykite viešąjį IP adresą įrenginio, iš kurio jungiatės prie serverio per SSH.

2. Antras sprendimas (pažengusiems naudotojams)

PREROUTING grandinėje pažymėkite srautą konkrečiam prievadui, pavyzdžiui, SSH, kad jis būtų nukreipiamas tiesiai į serverį, o ne per VPN.

Container ir Storage VPS:

Pirmiausia išjunkite rp_filter:

sysctl -w net.ipv4.conf.venet0.rp_filter=0

Tada sukurkite iptables taisykles:

iptables -t mangle -A OUTPUT -p tcp --sport 22 -j MARK --set-xmark 3
ip rule add fwmark 3 table 3
ip r a default dev venet0 table 3

Linux VPS:

Sukurkite iptables taisykles:

iptables -t mangle -A OUTPUT -p tcp --sport 22 -j MARK --set-xmark 3
ip rule add fwmark 3 table 3
ip r a default via 169.254.0.1 dev ens3 table 3

Jei norite leisti prieigą ne per SSH, o per kitą prievadą, pavyzdžiui, 80 arba 443, aukščiau pateiktose iptables taisyklėse pakeiskite 22 į pasirinktą prievado numerį.
Tuomet ši paslauga bus pasiekiama tiesiogiai, apeinant VPN maršrutą.

3. Papildomai: kaip nukreipti tik SSH srautą ne per VPN

Jei norite, kad visas kitas srautas eitų per VPN, o ne per jį būtų nukreipiamos tik SSH jungtys, sukurkite šias taisykles (pavyzdys Container ir Storage VPS):

iptables -t mangle -A PREROUTING -p tcp --dport 22 -j MARK --set-mark 3
iptables -t nat -A POSTROUTING -m mark --mark 3 -j SNAT --to-source SERVER1-IP
ip rule add fwmark 3 table 3
ip r a default dev venet0 table 3

Vietoje SERVER1-IP įrašykite viešąjį savo serverio IP adresą.

Ar gavote atsakymą į savo klausimą?