快速学会FRP搭建实现内网穿透

一.准备工具

准备工作: 至少两台电脑,其中一台需要是有公网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
快速学会FRP搭建实现内网穿透_第1张图片


三.配置Frp 服务器端(公网IP) 和 客户端(电脑)


(1) 服务器端

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服务自定义的端口号
快速学会FRP搭建实现内网穿透_第2张图片

6.然后启动服务
 
./frps -c ./frps.ini,这是前台启动


(2) 客户端

1.下载frp_0.30.0_darwin_amd64.tar.gz (对应自己的电脑系统版本, 这是Mac系统)
快速学会FRP搭建实现内网穿透_第3张图片

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也可。

快速学会FRP搭建实现内网穿透_第4张图片
frpc.ini的配置跟Windows或者Linux下没什么区别,注意填上你正确的FRP服务器地址和端口就行了,上边代码里server_addr=xxx.xxx.xxx.xxx代表你的FRP服务器地址,server_port = 7000代表你FRP服务器的端口,千万别照抄我的,macOS系统下配置FRP客户端并实现开机自启动 SSH默认的端口是22,VNC默认的端口是5900,如果你修改过,请填写正确的本地端口,remote_port则表示穿透到外网使用的端口,请确保在服务器的系统防火墙上放行了这些端口,且没有被其他程序占用,否则你是连不上的。
 
上面的配置和服务端是对应的。


(3) 开始穿透

  • 方式一:后台运行

1.需先 运行frps 服务器S

./frps -c ./frps.ini

2.然后 运行frpc 客户端C

./frpc -c ./frpc.ini

  • 方式二:Linux下添加frp内网穿透服务端工具开机启动

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 &
快速学会FRP搭建实现内网穿透_第5张图片

补充:

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

你可能感兴趣的:(linux,运维,服务器)