赞
踩
从公网中访问自己的私有设备向来都是一件难事。自己的台式机、NAS等等设备,它们可能处于路由器后,或者运营商因为IP地址短缺不给你分配公网IP地址。果我们想直接访问这些设备(远程桌面、远程文件、SSH等等),一般来说要通过一些转发或者P2P组网软件的帮助。如果我有一台计算机位于一个很复杂的局域网中,我想要实现远程桌面和文件访问,目前来看其所处的网络环境很难通过简单的端口映射将其暴露在公网之中,有以下几种方法:
搭建一个完整的frp服务链,我们需要:
因为frp的原理是利用服务端(所准备的VPS)进行转发,因而VPS的速度直接决定了之后连接的质量,请根据自己的需要选择相应主机配置。
我这里测试使用的是腾讯云2核4G的轻量应用服务器,采用的宝塔Linux面板 7.9.3,内网系统采用的是kalilinux。
因为这里我的服务端是centos8,客户端是kalilinux,所以我就下载了linux的64位版本,有需求可自行下载。
下载好解压后只需要这五个文件就行了,systemd、frps、frps.ini用于服务端,frpc、frpc.ini用于客户端,其它两个是深度配置,这里就不需要了。
当然也可以使用以下命令进行下载解压:
wget https://github.com/fatedier/frp/releases/download/v0.42.0/frp_0.42.0_linux_amd64.tar.gz
tar -zxvf frp_0.42.0_linux_amd64.tar.gz
将下载好的systemd、frps、frps.ini放入服务端里,这里是/home/lighthouse/frps
编辑配置文件frps.ini,如果想弄得简单一点,只需留一个frpbind_port就行了
- [common]
-
- # frp服务端口
- bind_port = 7000
- #后台管理(仪表盘)端口
- dashboard_port = 7500
- # 账户(自行设置)
- dashboard_user = XXX
- # 密码(自行设置)
- dashboard_pwd = XXX
- max_pool_count = 10
- # 日志文件位置及名字
- log_file = ./frps.log
- # 日志级别
- log_level = info
- # 日志最多记录天数
- log_max_days = 3
- # token 客户端token需要与此一致,最好设置难度高的密码
- token = 12345
这样服务端就简单配置好了,在此目录下使用命令就成功启动了
./frps -c frps.ini
如果要验证的话,可先在配置文件中设置好后台管理的端口、用户名和密码,启动后输入服务端ip:端口,这里是默认7500,此时会有一个弹框,输入用户名及密码后即可进入后台管理页面,这里就不放图片了。
因为运行后,不能使用Ctrl+c来结束命令,否则会断开,可以使用nohup命令将其运行在后台,接着就可以Ctrl+c关闭,输入jobs命令查看frp服务在后台运行,如下:
nohup ./frps -c frps.ini &
jobs
当然,除了上面这个命令,我更推荐配置systemctl来控制frps,也就是下载文件中的systemd,进入该文件夹后只需要frps.service文件,编辑frps.service,基本上其他的都不需要修改,只需修改ExscStart,修改成配置文件所在的路径。
该文件对应的存放地址为:
但是这里需要注意一点重要的点,就是刚才如果运行了nohup命令,在使用systemctl启动frp之前先将刚才启动的frp服务给kill掉,不然systemctl会出错,使用以下两个命令kill掉frp服务:
ps -aux|grep frp| grep -v grep
kill -9 (上一步查询的进程id)
接下来就可以放心大胆的使用systemctl来控制frp服务了:
启动frps
sudo systemctl start frps
开机自启
sudo systemctl enable frps
重启
sudo systemctl restart frps
查看状态
sudo systemctl status frps
关闭服务
sudo systemctl stop frps
最后通过命令查看以下frps状态,服务端的配置也就告一段落了。
将frpc、frpc.ini文件复制到kalilinux里,编辑frpc.ini配置文件:
- [common]
- server_addr = 服务端ip
- server_port = 与之前设置的bind_prot相同
- token = 与之前设置的token值相同
-
- #所需代理服务
- [ssh]
- type = tcp
- local_ip = 127.0.0.1
- local_port = 22 #所需代理服务端口
- remote_port = 6000 #代理端口
使用命令连接:
./frpc -c frpc.ini
代理成功:
如果没有连接成功,那就是bind_port设置的端口没有通过防火墙,需要放行,如果使用了宝塔,宝塔里也需要放行,如果还是连不了就检查端口是否被占用,以及token值是否一致。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。