前言
本文介绍如何解决不同局域网下两台电脑远程连接的问题。对于windows平台来说,直接用Google的远程桌面即可,体验不错。但对于Linux系统,Google目前的支持很差,还是回归ssh连接的老套路,但是直接使用ssh连接只能用于同一局域网下,为了实现外网的访问,利用frp来解决。
ubuntu安装ssh服务端
首先在要作为服务器的ubuntu主机上安装ssh服务端
1 | sudo apt-get install openssh-server |
然后确认sshserver是否启动了:(或用“netstat -tlp”命令)
1 | ps -e|grep ssh |
如果只有ssh-agent那ssh-server还没有启动,需要/etc/init.d/ssh start,如果看到sshd那说明ssh-server已经启动了。
如果没有则可以这样启动:
1 | sudo/etc/init.d/ssh start |
frp所需要的材料
一个有公网ip的服务器做转发用,此处称之为外网服务器。
可以去vultr https://my.vultr.com/# 购买,便宜好用,还可以用于shadowsocks 翻墙。
一个要当作服务器被远程访问的内网电脑,此处称之为内网服务器。
外网服务器设置
此处外网服务器时centsOS系统
下载frp
1 | wget https://github.com/fatedier/frp/releases/download/v0.27.0/frp_0.27.0_linux_amd64.tar.gz |
解压:
1 | tar zxf frp_0.27.0_linux_amd64.tar.gz |
修改配置(如果只作为ssh用则不需要修改):
1 | # 进入文件 |
默认配置为:
1 | [common] |
关闭防火墙(如果不做,内网服务器启动frp时会报no route to host 错误):
1 | systemctl stop firewalld.service |
启动服务,后台运行:
1 | nohup ./frps -c frps.ini & |
内网服务器设置
下载frp
1 | wget https://github.com/fatedier/frp/releases/download/v0.27.0/frp_0.27.0_linux_amd64.tar.gz |
解压:
1 | tar zxf frp_0.27.0_linux_amd64.tar.gz |
修改我们的客户端配置文件frpc.ini
1 | # 进入文件 |
可以看到客户端默认配置如下:
1 | [common] |
[common]表示以下配置信息是一些公用配置信息
server_addr是我们服务端即外网服务器的公网访问ip
server_port是我们前面在服务端配置的frps.ini中bind_port中对应的端口。需保持两边一致
[ssh]表示以下配置信息是我们使用ssh连接内网服务器时需要的一些配置信息
type 是连接类型,ssh方式连接就用tcp
local_ip 是本机ip,直接使用127.0.0.1即可
local_port 是本地ssh端口,ssh默认端口为22
remote_port 是外网服务器请求过来的端口
启动服务:
1 | nohup ./frpc -c frpc.ini & |
看到start proxy success 则成功
尝试远程连接
用另一台电脑尝试连接内网服务器:
1 | ssh x.x.x.x(外网服务器ip) -p 6000(上面设定的remote_port) |
密码就是ubuntu登录用户的密码。连接成功即可远程操作家里的Ubuntu主机啦。
参考连接
Ubuntu环境下SSH的安装及使用:https://blog.csdn.net/netwalk/article/details/12952051
CentOS下搭建Frp内网穿透服务: https://blog.csdn.net/kxwinxp/article/details/88428053
十分钟快速搭建frp的ssh和http的内网穿透: https://blog.csdn.net/u012198893/article/details/82348605
