用frp搞个内网穿透

使用场景:

        在公司用电脑敲代码,环境都是localhost,有时候你要接第三方接口比如支付、或者企业微信的事件回调等,都需要一个公网地址,因为这时候是开发阶段,你即想要公司电脑上运行的环境又想要回调能找到你的公司电脑。

        首先,在公司的所有电脑连wifi或者有线,都是共用一个公网ip对外访问,所以公司肯定不会给你一个单独的公网ip放你电脑上啦。

用frp搞个内网穿透,步骤提要:

        1 自己的云服务器(公网ip),

        买服务器就不教了,有钱啥配置都能买,没钱就买最低配置,仅做学习用。

如何远程连接云服务器_坐等夕阳落time的博客-CSDN博客_如何访问云服务器

        2 下载frp

        3 自己的云服务器配置frp服务端

        4 自己公司电脑配置frp客户端

1 下载frp

ps: 要把自己电脑上的杀毒软件,xx管家关了,否则下载不了的哦。

frp是一个开源项目,所以,你们别被收费了。

https://github.com/fatedier/frp

 frp下载地址

Releases · fatedier/frp · GitHub

  下载完了解压

 2 介绍文件

介绍一下解压包里的各个文件

 文件名带full,没有被使用,可以说它是一个配置参考文档,里面含着所有配置,你需要的时候可以去里面找,里面用英文介绍了每条配置的意思,但是英语不好的缺配置的时候,还是上网搜索吧。

3 开始使用

 文档 | frp

能力强的小伙伴可以自己看着官方文档弄,这个能力是一定要自己掌握的,所以我的文章都会放上官方的文档链接。

 1  自己的云服务器配置 frp服务端

主要是有公网ip的配置frp服务端,这样才能做到内网穿透,访问公网ip相当于访问到你的内网机子。

1.1 服务端配置编写 ---  frps.ini 文件

我用的: 

[common]
# frp服务端监听的端口,默认是7000
bind_port = 7000
# 身份验证令牌,在客户端使用
token = 52010

# frp管理后台端口,可修改
dashboard_port = 7500
# frp管理后台用户名和密码,可修改
dashboard_user = admin
dashboard_pwd = admin
# 开启监控
enable_prometheus = true

# frp日志配置
log_file = /var/log/frps.log
log_level = info
log_max_days = 3

编写完配置,我们就把这个linux的frp文件夹上传到云服务器

1.2 在云服务器启动frp的服务端服务 ---- frps

1.2.1 关闭frps服务

因为我的服务器上已经启动过frps服务了,所以我先把它关一下

# linux 上查看运行的服务列表
netstat -lntp

# linux 上关闭frps
sudo systemctl stop frps

1.2.2 启动frps服务

我以前下的版本里会有frps.service文件,现在这个0.45.0版本没有了

但是官方文档有教程

使用 systemd | frp

主要是ExecStart,填写frps的安装路径

因为为了做好备份,所以,不建议直接填写安装包文件夹的路径(就是你上传到服务器的那个文件夹frp_0.45.0_linux_amd64),主要还是规范,当然你可以随意。

所以参照frp以前旧版本中的frps.service,我们把frps文件复制放到 /usr/bin,把frps.ini复制放在 /etc/frp(这些文件操作我都是用WinSCP搞的,熟linux命令的可以直接命令弄哈)

 

 

最后一步:把你写好的 frps.service 文件复制到 /etc/systemd/system 或 /usr/lib/systemd/system/

[Unit]
Description=Frp Server Service
After=network.target

[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/usr/bin/frps -c /etc/frp/frps.ini

[Install]
WantedBy=multi-user.target

使用 systemd 命令,管理 frps,一般执行linux命令,都会加个sudo 超管身份执行

# 启动frp
systemctl start frps
# 停止frp
systemctl stop frps
# 重启frp
systemctl restart frps
# 查看frp状态
systemctl status frps
# 配置 frps 开机自启
systemctl enable frps
# 启动frp
sudo systemctl start frps

 1.2.3 查看frps服务成功没有

# 查看frp状态
systemctl status frps

不使用 systemd  ,单独运行 /usr/bin/frps -c /etc/frp/frps.ini 看看

/usr/bin/frps -c /etc/frp/frps.ini

 Permission denied 是因为ftps文件没有执行权限,给加上执行权限

一定要注意你执行命令时候的目录,因为路径错了,命令就执行失败,ftps文件放在了 /usr/bin ,执行 chmod 777 frps,加上权限

chmod 777 frps

 1.2.4 再去访问一下frps的管理后台

如果你运行启动命令时,没报错误,你就访问之前服务端配置文件 frps.ini 里设置的后台

ps: 云服务器记得防火墙开一下端口,不然访问不到

ip+端口( frps.init 里配的7500) 

 2 自己公司电脑配置 frp客户端 (内网)

公网frp服务端启动好了,开始内网frp客户端的配置,我用的是公司电脑,所以是windows系统的步骤和配置frp服务端一样。

ps: 要把自己电脑上的杀毒软件,xx管家关了。

1.1 客户端配置编写 ---  frpc.ini 文件

我用的: 

[common]
server_addr = 云服务器ip(公网ip)
server_port = 7000
# frps.init 上配置的身份令牌
token = 52010

# 配置ssh服务
# [ssh]
# type = tcp
# local_ip = 127.0.0.1
# local_port = 22
# 自定义
# remote_port = 20202

# 配置http服务,可用于小程序开发、远程调试等
# [web]
# type = http
# local_ip = 127.0.0.1
# local_port = 8080
# web域名
# subdomain = xxx.xxx.cn
# 自定义
# remote_port = 8080

# 上面的两个服务我都用不到,写在那里万一以后用到了
# 我主要用的下面这个服务[自定义命名],[ssh]这样的名称必须全局唯一,可以[ssh1]
[company_pc]
type = tcp
local_ip = 127.0.0.1
# 我本机跑的后端服务端口(springboot)
local_port = 9500
# 自定义,之后就是云服务器ip加这个remote_port,就能访问到你本机
remote_port = 13389

ps: 云服务器记得防火墙开一下remote_port填写的端口,不然访问不到

1.2 在自己公司电脑启动frp的客户端服务 ---- frpc

1.2.1 关闭frpc服务

我电脑之前跑过服务,先关了。 ctrl+alt+delete 选择任务管理器,然后 ctrl+f 输入frp 就找到了frpc服务, 鼠标右键结束任务就行。

1.2.2 启动frpc服务

打开下载的frp文件夹,在路径栏,输入cmd,回车:

 命令行窗口运行:

cmd /c frpc.exe -c frpc.ini

想后台运行frpc服务:

创建一个frpc.vbs文件

Set ws = CreateObject("Wscript.Shell")
ws.run "cmd /c frpc.exe -c frpc.ini",vbhide

鼠标双击运行即可。

3 开始试试,用公网ip能不能调用内网的服务

启一个9500服务:

apifox 调接口: 

 成功访问到了!之后用来在内网环境开发时,第三方的接口回调地址,比如支付、企业微信事件回调等

 参考

使用frp配置内网访问(穿透)教程(超详细,简单)_*Lisen的博客-CSDN博客_frp内网穿透

使用 systemd | frp

【Linux】使用 systemd 管理 frp 服务_chensuanfa的博客-CSDN博客_frp systemd

【frp内网穿透工具】服务端frps和客户端frpc在Linux和Windows下开机启动并隐藏启动的方法 – 星星芦苇

Frp穿透技术_冰羽呐的博客-CSDN博客

猜你喜欢

转载自blog.csdn.net/weixin_43991241/article/details/127526593