外網(wǎng)如何訪問內(nèi)網(wǎng)CentOS服務(wù)器?4種高效方案詳解
前置條件準(zhǔn)備
確保CentOS系統(tǒng)已啟用SSH服務(wù)并開放22端口,執(zhí)行以下命令驗(yàn)證:
sudo systemctl status sshd
sudo firewall-cmd --list-ports
方案一:路由器端口映射
操作步驟
- 登錄路由器管理界面,查找「端口轉(zhuǎn)發(fā)」或「虛擬服務(wù)器」功能
- 創(chuàng)建新規(guī)則:外部端口(如8022)映射到內(nèi)網(wǎng)CentOS的IP和22端口
- 通過
公網(wǎng)IP:8022
實(shí)現(xiàn)SSH連接
?? 注意:公網(wǎng)IP可能動(dòng)態(tài)變化,需結(jié)合DDNS服務(wù)
方案二:SSH反向隧道
建立持久化連接
ssh -fNTR 2222:localhost:22 公網(wǎng)服務(wù)器用戶@公網(wǎng)IP
通過公網(wǎng)服務(wù)器執(zhí)行ssh -p 2222 內(nèi)網(wǎng)用戶@localhost
實(shí)現(xiàn)訪問
方案三:frp內(nèi)網(wǎng)穿透
服務(wù)端配置(公網(wǎng)服務(wù)器)
# frps.ini
[common]
bind_port = 7000
客戶端配置(內(nèi)網(wǎng)CentOS)
# frpc.ini
[common]
server_addr = 公網(wǎng)IP
server_port = 7000
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
連接命令:ssh -p 6000 用戶名@公網(wǎng)IP
方案四:Cloudflare Tunnel
- 安裝Cloudflared客戶端
- 執(zhí)行認(rèn)證命令:
cloudflared tunnel login
- 創(chuàng)建隧道并配置SSH轉(zhuǎn)發(fā):
cloudflared tunnel create ssh-tunnel
cloudflared tunnel route dns ssh-tunnel ssh.yourdomain.com
echo 'ssh://localhost:22' > config.yml
cloudflared tunnel run ssh-tunnel
安全加固措施
- 修改SSH默認(rèn)端口:
Port 49215
- 啟用密鑰認(rèn)證:
PasswordAuthentication no
- 配置防火墻白名單:
sudo firewall-cmd --add-rich-rule='rule family="ipv4" source address="123.45.67.89" port port="22" protocol="tcp" accept'
- 定期更新系統(tǒng):
sudo yum update -y