ssh端口转发
- ssh端口转发
- Centos7关闭IPV6
- sshd服务端`sshd_config`配置调整(非必需)
- 优化sshd_config配置(非必需)
- 调整`ssh客户端`配置`~/.ssh/config` ---`必须`
- ssh终端转发socks5端口
- ssh终端命令行转发到socks5
- ssh_config配置端口转发SOCKS5
- 使用ssh将后端的服务端口转发到local
ssh端口转发
Centos7关闭IPV6
建议服务器端和本机都关闭IPV6
# 服务器端和客户端关闭IPV6
echo "
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
" >> /etc/sysctl.conf
#使网络配置生效
sudo sysctl -p
sshd服务端sshd_config
配置调整(非必需)
查看sshd_config
的以下配置是否启用
# 查看TCPKeepAlive|AllowTCPForwarding|PermitOpen|GatewayPorts的配置
## TCPKeepAlive TCP保活
## AllowTCPForwarding 允许TCP转发
## PermitOpen 重点配置,允许转发所有
## GatewayPorts 允许sshd将远程端口转发绑定到非loopback地址
grep -Ei 'TCPKeepAlive|AllowTCPForwarding|PermitOpen|GatewayPorts' /etc/ssh/sshd_config
优化sshd_config配置(非必需)
更新/etc/ssh/sshd_config
配置,让ssh转发效率
更好。
# 确保这个3个参数配置正确
# TCP保活
TCPKeepAlive yes
# 允许TCP转发
AllowTCPForwarding yes
# 重点配置,允许转发所有
PermitOpen any
# 允许sshd将远程端口转发绑定到非loopback地址
GatewayPorts yes
调整ssh客户端
配置~/.ssh/config
—必须
参考:https://www.nixcraft.com/t/channel-1-open-failed-administratively-prohibited-open-failed-with-ssh-tunneling/3773/2
参考: https://blog.tizen.moe/entry/2019/10/12/000000
解决的问题:
sshd服务端
机器上会一直提示open failed: connect failed: Connection timed out
;
channel 11: open failed: administratively prohibited: open failed
# 配置ssh客户端配置
vim ~/.ssh/config
# 将日志级别设置为: QUIET
LogLevel QUIET
ssh终端转发socks5端口
ssh终端命令行转发到socks5
# 转发socks5到本地端口13459
ssh -D 10421 -N -f -C -q username@hostip
# ssh -D 127.0.0.1:10421 -N -f -C -q username@hostip
## -D socket5代理,动态端口转发
## -N 不执行远程脚本或命令,,用于端口转发,通常与-f连用。
## -f 输入密码后进入后台模式,后台认证用户/密码,通常和-N连用,不用登录到远程主机。
## -C 使用数据压缩,网速快时会影响速度
## -q :安静模式,不输出 错误/警告 信息
其他参数
## -L tcp转发,本地端口:目标IP:目标端口
## -g :在-L/-R/-D参数中,允许远程主机连到建立的转发的端口,如果不加这个参数,只允许本地主机建立连接。
## -R : 远程端口转发
## -T :不分配 TTY 只做代理用
# 关闭提示 -o
ssh -o 'GatewayPorts yes' -D 0.0.0.0:13659 -N -C -f -q root@localhost
关闭错误提示,参考地址 https://qastack.cn/server/480208/strange-output-on-ssh-tunneling-output-failed-connect-failed-connection-timed
ssh_config配置端口转发SOCKS5
参考文档: 动态转发开发文档
Host JumpMachine
user admin
Hostname 114.114.114.114
Port 2222
identityfile ~/.ssh/id_rsa_dns # 私钥文件
# DynamicForward tunnel-host:local-port
DynamicForward 127.0.0.1:10421
使用ssh将后端的服务端口转发到local
Host JumpMachine
user admin
Hostname 114.114.114.114
Port 2222
identityfile ~/.ssh/id_rsa_dns # 私钥文件
# LocalForward [bind_address:]post remotehost:hostport
LocalForward localhost:80 baidu.com:80 # 将80端口暴露到本地80端口