SSH 隧道端口转发:安全代理与内网穿透
SSH 隧道可加密流量、穿透防火墙,是系统管理员常用技巧。
1. 本地端口转发(-L)
将本地端口转发到远程主机,常用于访问内网服务。
# 将本地 8080 转发到远程的 80 端口(通过跳板机)
ssh -L 8080:remote_host:80 user@gateway
# 访问本地 8080 即访问 remote_host 的 80
curl http://localhost:80802. 远程端口转发(-R)
将远程端口转发到本地,反向穿透 NAT。
# 将远程的 2222 转发到本地的 22(SSH)
ssh -R 2222:localhost:22 user@public_server
# 在公网服务器上用 ssh -p 2222 连接到本机3. 动态 SOCKS 代理(-D)
创建 SOCKS 代理,浏览器配置代理即可访问任何目标。
ssh -D 1080 user@gateway
# 配置浏览器 SOCKS5 代理 127.0.0.1:10804. 持久连接与后台运行
# 后台运行 -f
ssh -fN -L 8080:remote:80 user@gateway
# 自动重连(使用 autossh)
autossh -M 0 -fN -L 8080:remote:80 user@gateway5. 安全加固
- 启用
GatewayPorts yes使远程端口可外部访问。 - 限制转发端口
PermitOpen在 SSH 服务端。 - 使用密钥认证,避免密码。
