使用ssh反向代理+shadowsocks实现内网穿透

temp

在外网访问学校服务器以及其他资源,例如下载论文等,均可以通过此方法实现。

要求有一台具有公网ip的服务器,本文采用腾讯云服务器。

公网服务器ip地址: server_ip
内网机器ip地址: local_ip
在本地机器上安装autossh:

sudo apt install autossh  

云服务器安装openssh-server:

sudo apt install openssh-server 

更改本地服务器的配置文件:

sudo vim /etc/ssh/sshd_config  

设置PermitRootLoginwithout-password
并在末尾添加:GatewayPorts yes
同样更改云服务器的配置文件,也在末尾添加:GatewayPorts yes
重启本地以及云服务器的ssh服务:

service ssh restart  

制作免密码登录

ssh-keygen 

一路确认下去就可以了。
将本地生产的公匙放到远程服务器上:

ssh-copy-id server_user@server_ip  

确认后要输入云服务器的登录密码
开启反向代理:

autossh -M 30000 -o "StrictHostKeyChecking=false" -o "ServerAliveInterval 10" -o "ServerAliveCountMax 3" -NR 8980:local_ip:22 server_user@server_ip  

8980是将服务器端的8980端口映射到本地的22端口,即为默认的ssh端口。若只需要ssh访问,至此就完成了。若是需要用shadowsocks代理,需要将上一步中的22端口号修改,本文修改为4396。
在本地机器安装shadowsocks

pip install shadowsocks

启动shadowsocks

ssserver -s local_ip -p 4396 -k password --fast-open  

上面命令中的local_ip为本地机器的ip地址,不能直接写localhost,4396对应上面映射的地址,password为设置的密码。
shadowsocks连接:ip为云服务器的ip,端口为8980,加密方式默认为aes-256-cfb
可以ssh与shadowsocks二者共存,将对应的命令设置开机自启即可。

评论

此博客中的热门博文

shadowsocks中转

ubuntu 16.04 reboot命令慢的原因