记录生活中的点点滴滴

0%

利用阿里云搭建frp内网穿透,实现外网远程桌面连接内网

前些天折腾了配置win10家庭版的远程连接,当时主要想法是使得我去机房上课能用机房的电脑去远程连接实验室里我自己的笔记本,体验还是挺香的。这种方式的前提是两者必须在同一个局域网下面,虽然学校的校园网完全够用了,但是我想了又想,想把我笔记本的内网ip变成一个公网ip,然后其他电脑都能通过这个公网ip去访问,然后昨天就搞了一下午,最后算是解决了,所以记录一下这一过程。

我前些天听别人说不在同一局域网用VPN,但我搜了半天也找不到教程,后来想到自己有一台云服务器,就想到把自己电脑去映射到这个云服务器的一个端口,然后去连云服务器的这个端口,进行连接。专业点,就是:利用阿里云搭建frp内网穿透,实现外网远程桌面连接内网。

第一步,先把云服务器的7000端口开放出来:

第二步,在云服务器上安装frp服务,按如下操作:

1
2
3
4
5
6
7
8
9
10
# 下载压缩包
wget https://github.com/fatedier/frp/releases/download/v0.30.0/frp_0.30.0_linux_amd64.tar.gz
# 解压
tar -zxvf frp_0.30.0_linux_amd64.tar.gz
# 重命名
mv frp_0.30.0_linux_amd64 frp
# 进入frp文件夹
cd frp
# 配置文件夹中的frps.ini文件,一般不用管,默认:bind_port = 7000 即可
vim frps.ini

最后,启动服务,并用 nohup & 命令来让其在后台一直运行:

1
nohup ./frps -c frps.ini &

第三步,客户端(我们自己的笔记本)进行frp配置:

软件 githup 地址:frp

我们的电脑是windows64位,下载地址在此

同样解压,文件夹更名为frp,然后配置frpc.ini文件:

1
2
3
4
5
6
7
8
9
[common]
server_addr = 你自己服务器端ip(公网ip)
server_port = 7000 #对应服务器配置中的端口

[ssh]
type = tcp
local_ip = 127.0.0.1 #本机电脑ip
local_port = 3389
remote_port = 3389

配置完成之后,就可以用命令行启动frpc.exe文件了

命令行进入当前frp目录下执行命令:

1
./frpc -c frpc.ini

至此,我们自己的电脑配置完成,可以在外网电脑通过远程桌面连接内网电脑,远程桌面地址为:阿里云服务器公网IP:3389

以我的电脑为例,看一下连接后的界面:

到这里,其实还有两个问题,阿里云服务器一般不会经常重启,但是我们自己的电脑会经常重启,那个frp命令可能会中断,要想个办法解决,让其开机自启动,并且最好别显示那个黑终端。这个好解决,我们在自己电脑安装一个 winsw ,就能实现,看下一步操作即可。但是还有一个问题,我到现在也没解决,就是远程连接信号不好,卡顿的一批,甚至我去机房试,连接时直接黑屏,就是画面跟不上。这个确实很苦恼人,我的服务器是最便宜的那个学生机,配置太低了,我也去网上查了一些,但是好像也没锤子用。其中有一个就是说,把服务器重启,我试了,然后重启之后,我的nginx服务器,还有这个frps7000端口的服务全没了,我™又重新启动了一遍,然后再试,我靠,是变快了些,但是过段时间,特马的还是和之前一样,服!得,这个问题先不管,以后能解决再写解决方案,接着走下一步。

第四步,电脑安装winsw让其开机自动启动frpc服务:

下载winsw,下载链接在此,github官网地址:winsw

下载的exe文件更名为winsw.exe,放到frp相同的目录中,并在同一个目录中创建winsw.xml,内容是:

1
2
3
4
5
6
7
8
9
10
<service>
<id>frp</id>
<name>这里是服务的名称</name>
<description>这里是服务的介绍,随便写</description>
<executable>frpc</executable>
<arguments>-c frpc.ini</arguments>
<onfailure action="restart" delay="60 sec"/>
<onfailure action="restart" delay="120 sec"/>
<logmode>reset</logmode>
</service>

以管理员权限打开一个命令窗口,先进入到frp所在的目录,执行:

1
2
.\winsw install
.\winsw start

如果要停止这个服务,执行:

1
2
.\winsw stop
.\winsw uninstall

到此,全部完成,我们可以重启一下电脑,然后测试能否连接上。