Serveo是一個SSH服務器,僅用於遠程端口轉發,可以快速將本地端口暴露在外網。官方聲稱其為Ngrok的絕佳替代品,對其優點是使用現有的SSH客戶端,無需安裝客戶端即可完成端口轉發。當用戶連接到Serveo時,他們會獲得一個公共URL,任何人都可以使用它來連接到他們的localhost服務器。
使用
官方地址:http://serveo.net
使用要求:可以使用SSH,並且能連接到互聯網,Linux、Windows等系統都行。
1、轉發HTTP
將本地3000端口穿透到公網中,使用命令:
#要轉發其它端口的自行替換
ssh -R 80:localhost:3000 serveo.net
第一次如果有提示,選擇yes即可,之後會為你隨機生成一個serveo.net二級域名,然後就可以使用瀏覽器間接訪問本地的localhost:3000了。
如果要指定二級域名,可以使用命令:
#這裡默認為moerats.serveo.net,自行替換即可
ssh -R moerats:80:localhost:3000 serveo.net
此時你就可以在外網使用moerats.serveo.net訪問你本地的localhost:3000了。
2、轉發SSH
將本地22端口穿透到公網中,使用命令:
#可以自行設置名稱,這裡默認rats
ssh -R rats:22:localhost:22 serveo.net
接下來就可以登錄該內網服務器了,使用命令:
ssh -J serveo.net root@rats
3、轉發TCP
將本地1492端口穿透到公網中,使用命令:
#可以自行設置公網端口,這裡默認1492
ssh -R 1492:localhost:1492 serveo.net
進程守護
這裡官方推薦使用AutoSSH,作用是一旦SSH連接超時或停止傳遞流量,則根據需要重新啟動它。
1、安裝AutoSSH
#Debian/Ubuntu系統
apt install autossh -y
#CentOS系統
yum install autossh -y
2、使用Systemd
只適用於CentOS 7、Debian 8+、Ubuntu 16+等。
#輸入你的轉發命令,去掉開頭的ssh即可
serveo="-R 80:localhost:3000 serveo.net"
#將以下代碼一起復制到SSH運行
cat > /etc/systemd/system/autossh.service <[Unit]
Description=autossh
After=network.target
[Service]
Type=simple
Environment="AUTOSSH_GATETIME=0"
ExecStart=$(command -v autossh) -M 0 -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" $serveo
Restart=on-abort
[Install]
WantedBy=multi-user.target
EOF
開始啟動並設置開機自啟:
systemctl start autossh
systemctl enable autossh
最後更多的命令和使用可以直接查看官方文檔
閱讀更多 天時 的文章