准备工作: 至少两台电脑,其中一台需要是有公网IP的服务器
工具: frp, centOS
Frp工具: https://github.com/fatedier/frp/releases
官网: https://www.chuantou.org/
官方使用文档:https://gofrp.org/docs/examples/ssh/
Git使用示例:https://gitee.com/yijicai/frp#frp
1.新建目录
mkdir ~/frp
2.上传frp_0.30.0_linux_amd64.tar.gz至linux服务器~/frp目录下
3.解压,并进入目录
tar -zxvf frp_0.30.0_linux_amd64.tar.gz
cd frp_0.30.0_linux_amd64
4.这里主要关注4个文件,分别是frpc、frpc.ini和frps、frps.ini,前者两个文件是客户端所关注文件,后者两个文件是服务端所关注两个文件。
5.可以先删掉frpc、frpc.ini两个文件,然后再进行配置,也可以不用删除。
vim ./frps.ini
-[common] bind_port = 7000 #与客户端绑定的进行通信的端口
vhost_http_port = 8080 #访问客户端web服务自定义的端口号
6.然后启动服务
./frps -c ./frps.ini
,这是前台启动
2.解压后,首先删掉frps、frps.ini两个文件,然后再进行配置,修改 frpc.ini 配置文件
[common]
server_addr = xxxxxxx #公网服务器ip
server_port = 7000 #与服务端bind_port一致
[web]
type = http #访问协议
local_port = 8080 #内网web服务的端口号(Vue调试模式,默认8080端口) custom_domains = www.xxx.com #所绑定的公网服务器域名,一级、二级域名都可以,IP也可。
frpc.ini的配置跟Windows或者Linux下没什么区别,注意填上你正确的FRP服务器地址和端口就行了,上边代码里server_addr=xxx.xxx.xxx.xxx代表你的FRP服务器地址,server_port = 7000代表你FRP服务器的端口,千万别照抄我的,macOS系统下配置FRP客户端并实现开机自启动 SSH默认的端口是22,VNC默认的端口是5900,如果你修改过,请填写正确的本地端口,remote_port则表示穿透到外网使用的端口,请确保在服务器的系统防火墙上放行了这些端口,且没有被其他程序占用,否则你是连不上的。
上面的配置和服务端是对应的。
1.需先 运行frps 服务器S
./frps -c ./frps.ini
2.然后 运行frpc 客户端C
./frpc -c ./frpc.ini
1.frps 服务器
在/etc/rc.local里面添加 nohup /usr/local/frp/frps -c /usr/local/frp/frps.ini >/dev/null 2>&1 &
2.frpc 客户端
在/etc/rc.local里面添加 nohup /usr/local/frp/frpc -c /usr/local/frp/frpc.ini >/dev/null 2>&1 &
补充:
windows下添加frp客户端开机启动
(1)创建 frpc.bat启动脚本
(2)脚本内容:
@echo off
cd “D:\Program Files\frp”
frpc -c frpc.ini
@echo on
(3)创建frpc.bat快捷方式,将此快捷方式复制到所有程序-启动(右击,选择打开)文件夹下。
mac下添加frp客户端开机启动
要实现macOS下程序的自启动,很多人都知道在“系统偏好设置” - “用户和群组”中设置和取消开机启动,但这里要说的是另外一种方式,那就是launchd的方式,通过在launchd下编写plist启动文件实现FRP带参数启动。这里要啰嗦两句,在launchd下其实有两种实现程序自启的方式
1.如果需要 root,并且是需要用户登陆后才能运行,把 plist 放在 /Library/LaunchAgents/
2.如果需要 root,并且不需要用户登陆后都能运行,把 plist 放在 /Library/LaunchDaemons/
怎么理解呢,第一种就是系统启动后,你不登录到桌面,程序就不会在后台启动,类似于Windows下的开始菜单里的startup。第二种就是系统启动后,程序也随系统在后台启动,不管用户是否登录桌面,类似于Windows下的系统服务。你需要哪种方式让程序自启,自行选择第一种或者第二种。
选择在/Library/LaunchDaemons/创建plist
sudo vim ~/Library/LaunchDaemons/frpc.plist
让我们用上面的命令创建FRP的启动文件frpc.plist,并用vim编辑它,你当然也可以用你自己喜欢的编辑器编辑macOS系统下FRP客户端配置并实现开机自启动
DOCTYPE plist PUBLIC -//Apple Computer//DTD PLIST 1.0//EN
http://www.apple.com/DTDs/PropertyList-1.0.dtd >
<plist version="1.0">
<dict>
<key>Labelkey>
<string>frpcstring>
<key>ProgramArgumentskey>
<array>
<string>/Users/xxxxxxxx/Downloads/frp_0.30.0_darwin_amd64/frpcstring>
<string>-cstring>
<string>/Users/xxxxxxxx/Downloads/frp_0.30.0_darwin_amd64/frpc.inistring>
array>
<key>KeepAlivekey>
<true/>
<key>RunAtLoadkey>
<true/>
dict>
plist>
将上面一段代码粘贴到frpc.plist里,粗体字部分请修改为你的frpc和frpc.ini的真实路径,千万别照抄作业哦,老师会发现的。
最后,在终端输入下面的两段命令给frpc.plist赋予权限,并加载配置到系统使配置生效
sudo chown root ~/Library/LaunchDaemons/frpc.plist
sudo launchctl load -w ~/Library/LaunchDaemons/frpc.plist
重启系统,FRP客户端已经可以随系统自启了。
(1)先看看服务器是否开启了任务监听对应端口,我这里端口是7000
sudo netstat -tunlp | grep 7000
(2)如果任务已开始监听,然后看看防火墙是否开放了这个端口,很重要
sudo iptables -L -n --line-numbers | grep 7000
(3)如果防火墙没有开启这个端口,需要自己添加规则开启
sudo iptables -I INPUT -ptcp --dport 7000 -j ACCEPT
(4)补充iptables相关命令 查找所有规则
sudo iptables -L INPUT --line-numbers