SSH动态端口转发(-D):一条命令搭建SOCKS代理(下)

其他 作者:80KM编辑

什么是SSH动态端口转发?SSH动态端口转发(Dynamic Forwarding)可以在你本地建立一个SOCKS代理服务器。所有支持SOCKS代理的应用程序,都可以通过这个代理,经由SSH服务器访问网络。

与本地转发的区别
对比项 本地转发 (-L) 动态转发 (-D)

目标 固定 任意(由应用程序决定)

协议 普通TCP SOCKS代理协议

端口数 一对一映射 一个代理端口服务所有请求

使用场景

需要代理上网,保护隐私

浏览器、聊天软件等需要统一代理出口
绕过某些网络限制
配置方法
使用 -D 选项。

基本格式:
bash

ssh -D 本地端口 用户名@SSH服务器地址

实际例子:

bash
ssh -D 1080 user@server.example.com

效果:在本地 1080 端口建立了一个SOCKS v5代理。

浏览器配置(以Firefox为例)
打开 Firefox → 设置 → 网络设置

选择手动代理配置
SOCKS主机:127.0.0.1,端口:1080
选择 SOCKS v5
点击确定保存
一键后台命令
bash

ssh -fN -D 1080 user@server.example.com

-f:后台运行

-N:不执行远程命令
三种模式速查表

模式 命令选项 一句话用途 典型命令

本地转发 -L 把本地端口映射到远程内网 ssh -L 8080:内网IP:80 跳板机

远程转发 -R 把公网服务器端口映射回本地 ssh -R 8080:localhost:3000 公网服务器

动态转发 -D 创建SOCKS代理 ssh -D 1080 服务器

安全提醒

用SSH密钥代替密码登录,更安全

可在服务器端 sshd_config 中限制转发权限:

text
AllowTcpForwarding yes # 允许转发

GatewayPorts no # 禁止外网访问远程转发端口(默认安全)

建议将SSH端口22改为高位端口,减少扫描攻击

‍另外,可以借助 80KM 端口流量转发程序,搭建流量中转节点,所有外网访问经过节点再回源,彻底隐藏真实 IP。支持 80、443 常用网页端口,兼容各大系统。