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 <<EOF [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
最后更多的命令和使用可以直接查看官方文檔