SSH端口转发参考工具
SSH端口转发教程与命令生成器,支持本地转发、远程转发、动态转发三种模式,常用端口参考表,安全注意事项与防火墙规则参考。
命令生成器
转发教程
常用端口
安全与防火墙
SSH命令生成器
生成的SSH命令将在此显示
1. 本地端口转发(-L)
将本地端口映射到远程服务器可以访问的目标。适用于访问内网服务。
ssh -L [本地端口]:[目标主机]:[目标端口] 用户名@SSH服务器
示例:将本地8080端口转发到远程MySQL
ssh -L 8080:localhost:3306 root@db-server.com
数据流:本地:8080 -> SSH隧道 -> db-server.com:3306。只有SSH服务器需要公网可访问。
2. 远程端口转发(-R)
将远程服务器端口映射到本地可以访问的目标。适用于内网穿透。
ssh -R [远程端口]:[本地目标]:[本地端口] 用户名@SSH服务器
示例:将远程8080端口转发到本地3000端口(内网穿透)
ssh -R 8080:localhost:3000 root@public-server.com
数据流:public-server.com:8080 -> SSH隧道 -> 本地:3000。需要在SSH服务器配置中启用GatewayPorts。
3. 动态端口转发(SOCKS代理 -D)
创建SOCKS代理服务器,通过SSH隧道转发所有TCP流量。
ssh -D [本地端口] 用户名@SSH服务器
示例:在本地1080端口创建SOCKS5代理
ssh -D 1080 root@proxy-server.com
注意:动态转发会转发所有通过代理的流量,请谨慎使用。浏览器中配置SOCKS5代理为socks5://127.0.0.1:1080。
常用端口参考表
| 服务 | 默认端口 | 协议 | 说明 |
|---|---|---|---|
| SSH | 22 | TCP | 安全 Shell 远程登录 |
| HTTP | 80 | TCP | Web 服务 |
| HTTPS | 443 | TCP | 安全 Web 服务 |
| FTP | 21 | TCP | 文件传输 |
| SSH/SFTP | 22 | TCP | 安全文件传输 |
| MySQL | 3306 | TCP | MySQL 数据库 |
| PostgreSQL | 5432 | TCP | PostgreSQL 数据库 |
| MongoDB | 27017 | TCP | MongoDB 数据库 |
| Redis | 6379 | TCP | Redis 缓存 |
| RabbitMQ | 5672 | TCP | RabbitMQ 消息队列 |
| Docker Registry | 5000 | TCP | Docker 私有仓库 |
| Jenkins | 8080 | TCP | CI/CD 服务 |
| Tomcat | 8080 | TCP | Java Web 服务器 |
| VNC | 5900 | TCP | 远程桌面 |
| RDP | 3389 | TCP | Windows 远程桌面 |
| SMTP | 25 | TCP | 邮件发送 |
| DNS | 53 | UDP/TCP | 域名解析 |
| Elasticsearch | 9200 | TCP | 搜索引擎 |
| Kafka | 9092 | TCP | 消息流平台 |
安全注意事项
1. 使用密钥认证
生成SSH密钥对:
将公钥复制到服务器:
生成SSH密钥对:
ssh-keygen -t ed25519 -C "your@email.com"将公钥复制到服务器:
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server
2. 禁用密码认证
编辑
编辑
/etc/ssh/sshd_config,设置 PasswordAuthentication no,然后 systemctl restart sshd
3. 限制端口转发
在
在
sshd_config 中设置 AllowTcpForwarding yes(按需开启),PermitOpen localhost:3306(限制转发目标)
4. 不要转发到低端口
避免将远程转发绑定到特权端口(1-1023),除非必要且经过安全评估。
避免将远程转发绑定到特权端口(1-1023),除非必要且经过安全评估。
5. 监控连接
使用
使用
ss -tlnp 检查监听端口,netstat -anp | grep ssh 查看 SSH 连接状态。
防火墙规则参考
iptables
# 允许SSH连接 iptables -A INPUT -p tcp --dport 22 -j ACCEPT # 允许特定端口的转发 iptables -A FORWARD -p tcp --dport 3306 -j ACCEPT # 限制SSH连接速率(防暴力破解) iptables -A INPUT -p tcp --dport 22 -m limit --limit 3/min -j ACCEPT iptables -A INPUT -p tcp --dport 22 -j DROP
firewalld
# 开放SSH端口 firewall-cmd --permanent --add-port=22/tcp firewall-cmd --reload # 开放转发端口 firewall-cmd --permanent --add-port=8080/tcp firewall-cmd --reload
ufw (Ubuntu)
# 允许SSH ufw allow 22/tcp # 允许特定端口 ufw allow 8080/tcp ufw enable