autossh
作用
實(shí)現(xiàn)內(nèi)網(wǎng)穿透卓研,之前用過(guò)ssh反向代理趴俘,但是ssh反向代理在網(wǎng)絡(luò)不穩(wěn)定的環(huán)境下面就會(huì)很麻煩,連接斷開(kāi)后還要自己手動(dòng)連接奏赘,為了實(shí)現(xiàn)穩(wěn)定的ssh反向代理穿透寥闪,了解到了autossh,autossh會(huì)用一個(gè)特定的端口監(jiān)視ssh反向代理端口磨淌,從而實(shí)現(xiàn)穩(wěn)定的連接疲憋,在網(wǎng)絡(luò)不好的時(shí)候會(huì)自動(dòng)連接。
配置
實(shí)現(xiàn)內(nèi)網(wǎng)穿透首先需要一個(gè)外網(wǎng)的主機(jī)梁只,內(nèi)網(wǎng)主機(jī)在啟動(dòng)后先和外網(wǎng)主機(jī)之間建立隧道缚柳,后續(xù)訪問(wèn)從這個(gè)隧道來(lái)訪問(wèn)內(nèi)網(wǎng)主機(jī),所以需要一臺(tái)外網(wǎng)主機(jī)和一臺(tái)內(nèi)網(wǎng)主機(jī)搪锣。
配置外網(wǎng)主機(jī)
更改本地ssh監(jiān)視端口秋忙,原本只能127.0.0.1監(jiān)視本地ssh,現(xiàn)在需要讓任意端口都可以監(jiān)視ssh端口构舟。
在外網(wǎng)服務(wù)器中更改ssh配置灰追。ssh配置在 /etc/ssh/sshd_config 。需要將其中的#GatewayPorts no
更改成GatewayPorts yes,來(lái)讓任何ip都可以監(jiān)視ssh連接弹澎。
重啟ssh服務(wù)朴下,使得配置生效。
sudo service sshd restart
配置內(nèi)網(wǎng)主機(jī)
安裝autossh
sudo apt install autossh
1
配置免密登錄
為了維護(hù)連接裁奇,每次輸入密碼會(huì)很麻煩桐猬,所以配置成免密連接會(huì)很方便。
在內(nèi)網(wǎng)主機(jī)生成密鑰刽肠。
ssh-keygen
1
將密鑰拷貝到外網(wǎng)主機(jī)溃肪。
ssh-copy-id username@ip
1
username是外部主機(jī)的用戶名,ip是外部主機(jī)的ip音五。
開(kāi)啟autossh
autossh -M 2223 -fNR 0.0.0.0:2222:localhost:22 username@ip
1
參數(shù):
-M 2223 2223是用于監(jiān)視連接的隧道的端口惫撰,通過(guò)這個(gè)端口來(lái)維護(hù)ssh連接。
-f 后臺(tái)運(yùn)行服務(wù)
-N 不執(zhí)行遠(yuǎn)程命令
-R 將遠(yuǎn)程主機(jī)的端口轉(zhuǎn)發(fā)到本地端口躺涝,后面的2222就是外網(wǎng)的端口厨钻,localhost后面的是本地的端口。
開(kāi)機(jī)自啟
上面的隧道在重啟后是不存在的坚嗜,需要我們重新建立夯膀,所以需要配置成開(kāi)機(jī)自啟。
開(kāi)機(jī)執(zhí)行的腳本在/etc/rc.local 苍蔬。
添加在特定用戶下執(zhí)行的腳本
su -c 'autossh -M 2223 -fNR 0.0.0.0:2222:localhost:22 username@ip' <本地用戶> &
轉(zhuǎn)發(fā):https://blog.csdn.net/qq_45928255/article/details/122527256