ssh命令使用

1、SSH隧道

ssh -L localport:remoteip:remoteport username@ip

将本地端口localport收到的报文,通过中间节点ip,转发给远端节点remoteip的端口remoteport.

ssh -R remoteport:localip:localport username@ip

将主机ip端口remoteport收到的报文,转发给本地节点localip的端口localport.

ssh -D port username@ip

建立socks代理服务器,本地端口port为代理服务器的端口。

tip:避免长时间没有通信的连接断开,(1)ssh的命令上加上-o TCPKeepAlive=yes(默认是开启的)(2)加入一个定期输出的命令:ssh -R remoteport:localip:localport username@ip “vmstat 20"

2、通过代理连接ssh

ssh -o ProxyCommand="nc -x 127.0.0.1:7000 %h %p" user@host

如果7000端口是通过上面ssh -D建立的sock5代理,则相当于ssh over ssh。

(nc除了可以用socks代理,也可用https代理,nc -X connect -x 127.0.0.1:8080 ip port

3、ssh建立VPN

使用 tun/tap 设备来建立加密一个隧道。

修改/etc/ssh/sshd_config

PermitRootLogin yes
PermitTunnel yes

在client上执行:

ssh -w 1:1 root@serverip

然后在server端与client端配置tun1的地址。

server: ifconfig tun1 10.10.10.1/24

client:  ifconfig tun1 10.10.10.2/24

然后可以配置ip_forward和iptables实现路由或NAT功能。

对比socat:

server端:socat tcp-l:9999,reuseaddr TUN:10.10.10.1/24,up

client端:socat tcp:serverip:9999 TUN:10.10.10.2/24,up

posted @ 2020-04-07 10:02  gelare  阅读(1197)  评论(0)    收藏  举报