SSH 端口转发与 SOCKS 代理

395 篇文章 34 订阅

SSH port forwarding 端口转发的三种方式
Local Port Forwarding 本地端口转发
将连接从客户端主机转发到 SSH 服务器主机,然后转发到目标主机端口。

ssh -L [LOCAL_IP:]LOCAL_PORT:DESTINATION:DESTINATION_PORT [USER@]SSH_SERVER
复制代码

参数说明:

[LOCAL_IP:]LOCAL_PORT - 本地 IP 和端口号,LOCAL_IP 默认是 localhost。
DESTINATION:DESTINATION_PORT - 目标机器的 IP 地址和端口号。
[USER@]SERVER_IP - 远程 SSH 地址和登录用户。
案例:

使用本地地址 127.0.0.1:3336 连接远程的数据库 db001.host:3306,同时 127.0.0.1:3337 连接到 db002.host:3306:

ssh -L 3336:db001.host:3306 3337:db002.host:3306 user@pub001.host
复制代码

检查 SSH Server 配置:AllowTcpForwarding=yes

Remote Port Forwarding 远程端口转发
远程端口转发与本地端口转发相反。 它允许您将远程(ssh 服务器)机器上的端口转发到本地(ssh 客户端)机器上的端口,然后再转发到目标机器上的端口。

远程端口转发主要用于向外部人员提供对内部服务的访问权限。

ssh -R [REMOTE:]REMOTE_PORT:DESTINATION:DESTINATION_PORT [USER@]SSH_SERVER
复制代码

参数说明:

[REMOTE:]REMOTE_PORT - 远程服务器地址和端口号。REMOTE 默认会所有地址。
DESTINATION:DESTINATION_PORT - 目标机器的 IP 地址和端口号。
[USER@]SERVER_IP - 远程 SSH 地址和登录用户。
案例:

ssh -R 8080:127.0.0.1:3000 -N -f user@remote.host
复制代码

上面的命令将使 ssh 服务器侦听端口 8080,并将所有流量从此端口传输到本地计算机的 3000 端口上。这样就可以在浏览器中输入 the_ssh_server_ip:8080 访问应用了。

检查 SSH Server 配置:GatewayPorts=yes

Dynamic Port Forwarding 动态端口转发
动态端口转发允许您在本地(ssh 客户端)机器上创建一个套接字,它充当 SOCKS 代理服务器。 当客户端连接到这个端口时,连接被转发到远程(ssh 服务器)机器,然后被转发到目标机器上的动态端口。

ssh -D [LOCAL_IP:]LOCAL_PORT [USER@]SSH_SERVER
复制代码

参数说明:

[LOCAL_IP:]LOCAL_PORT - 本地 IP 地址和端口号。LOCAL_IP 默认是 localhost。
[USER@]SERVER_IP - 远程 SSH 地址和登录用户。
案例:

ssh -D 8080 -N -f -C -q user@remote.host
复制代码
-D 8080 启动一个 SOCKS 服务并监听本地的 9090 端口
-f 后台运行
-C 压缩请求数据
-q 使用静默模式
-N 不执行远程命令
SOCKS 代理使用场景
cURL 代理
curl -x socks5://127.0.0.1:8080 https://google.com
复制代码

终端代理

export http_proxy=socks5://127.0.0.1:8080 \
    https_proxy=socks5://127.0.0.1:8080 \
    all_proxy=socks5://127.0.0.1:8080
复制代码

Git 代理

git config --global http.proxy socks5://127.0.0.1:8080
git config --global https.proxy socks5://127.0.0.1:8080
复制代码

SSH 代理
编辑 ~/.ssh/config:

Host github.com
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa
    ProxyCommand nc -v -x 127.0.0.1:8080 %h %p

最后
如果你觉得此文对你有一丁点帮助,点个赞。或者可以加入我的开发交流群:1025263163相互学习,我们会有专业的技术答疑解惑

如果你觉得这篇文章对你有点用的话,麻烦请给我们的开源项目点点star:http://github.crmeb.net/u/defu不胜感激 !

PHP学习手册:https://doc.crmeb.com
技术交流论坛:https://q.crmeb.com

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值