最近突然对内网穿透相关知识比较感兴趣,再加上最近疫情又有苗头,说不定以后还有机会居家办公,但是平时使用的远程软件:TeamView和向日葵一个要收费,一个用起来实在是又卡又不顺手(向日葵可以用手机远程还挺舒服的,但是PC远程实在有点难受,300k的小水管,调试unity真的卡的人直犯困)。
今天在研究的时候发现大多内网穿透的方案都需要用到一些第三方软件。但是这篇文章中的需求刚好和我一样,而且frp量级小且配置方便。于是我又开始了大抄特抄!
1.frp
frp Releases
从图中可以看出来,frp是分为两个部分的:
- frps 服务器,负责监听用户请求,并根据请求端口不同分配到不同的frpc客户端中
- frpc 客户端,需要主动注册到服务端中,才可以在用户请求对应端口时通过服务器转发到自身对应端口中。
frp的使用也很简单,只要去上面的releases界面中下载对应平台的包就可以了。我这边测试的是一台windows客户端和linux的服务器,所以要同时下载frp_XXX_windows_amd64.zip
和frp_XXX_linux_amd64.tar.gz
,当然,客户端和服务端的版本要保持一致~
2.服务端环境部署
将下载的服务端代码解压后放在服务器,其中frps和frps.ini两个文件是我们需要关心的文件,其中frps是执行文件,.ini是配置文件。我使用的0.43版本不用改配置,但是要注意这两个文件的读写权限,不然就可能会有sudo: ./frps: command not found
这样的事情出现。
1 2 3 4 5 |
//修改读写权限为777 chmod 777 ./frps frps.ini //执行文件 sudo ./frps -c frps.ini |
当看到控制台打印了下面这些日志,就说明服务器已经成功启动了
此外,.ini配置中默认的绑定端口号为7000,所以记得去服务器的防火墙内把端口打开,不然会访问不到的~
3.客户端部署
客户端部署与服务端类似,只不过使用的是frpc和frpc.ini两个文件,客户端的配置文件如下:
1 2 3 4 5 6 7 8 9 |
[common] server_addr = xx.xx.xx.xx #你的公网机器的ip地址 server_port = 7000 [ssh] type = tcp local_ip = 127.0.0.1 local_port = 3389 remote_port = 6000 |
因为我们要使用的是远程控制,所以我们本地的端口号设置为3389(3389是Windows远程桌面登录的默认端口号,就像ssh连接默认是22,ftp默认是21一样~),如果我们想用其他方式,如ssh,也可以映射到22端口。其中的6000端口是用户访问时使用的端口(服务端防火墙也要对应开启6000端口)。在用户访问6000端口时,frp就会自动映射到3389端口了。
然后就可以愉快的用原生的远程桌面访问机器了~(公网ip:端口)
4.其他事项
客户端和服务端的cmd在使用过程中都不能关哦,不然连接就断啦~