使用ssh反向代理+shadowsocks实现内网穿透
在外网访问学校服务器以及其他资源,例如下载论文等,均可以通过此方法实现。
要求有一台具有公网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  
设置PermitRootLogin为without-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二者共存,将对应的命令设置开机自启即可。
评论
发表评论