端口转发
本地端口转发
将本地端口映射到远程服务器上
ssh -L local_port:remote_host:remote_port username@hostname
例子
# 将本地端口3307映射到远程服务器的3306端口,通过localhost 3307 访问服务器上的mysql
ssh -o ServerAliveInterval=15 -CNg -L 3307:localhost:3306 root@hostname
# -o ServerAliveInterval=15 每隔15秒向服务器发送一个空数据包,保持连接活跃
# 将远程网络内网服务器192.168.2.10的mysql端口映射到本地3307端口,通过localhost 3307 mysql
ssh -CNg -L 3307:192.168.2.10:3306 user@203.0.113.45
反向代理
ssh简单反向代理
当外网服务器没有公网ip,或者没有静态公网ip时。需要借助另外一台公网服务器。
#在生产内网服务器上执行
ssh -f -N -T -g -R 3307:localhost:3306 user@辅助服务器公网ip
这样可以在自己电脑通过辅助服务器公网ip 3307 访问生产内网服务器上的mysql
frp内网穿透
服务端
bindPort = 7000
客户端
serverAddr = "x.x.x.x"
serverPort = 7000
[[proxies]]
name = "ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6000
连接命令
ssh -p 6000 user@x.x.x.x
文件同步
rsync
# 同步本地目录到远程目录
rsync -avz -e "ssh -p 22" local_directory/ user@hostname:remote_directory/
# 同步远程目录到本地目录
rsync -avz -e "ssh -p 22" user@hostname:remote_directory/ local_directory/
提示
--delete 同步删除远程目录的文件