内网穿透(Linux-windows)-frp
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了内网穿透(Linux-windows)-frp,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5471字,纯文字阅读大概需要8分钟。
内容图文
![内网穿透(Linux-windows)-frp](/upload/InfoBanner/zyjiaocheng/931/f35f382bafcc45dd8a3e16c4c0a52e2c.jpg)
文章目录
内网穿透(Linux-windows)-frp
使用背景
公司办公,Git代码都是内网才能访问,有的还是内网域名,远程协助开发时无法访问到内网,仓库管理十分困难。这时通过内网穿透,然后现场客户端通过nginx代理一下git地址,就可以通过自己公网的服务器进行访问现成内网Git了。
目标:
访问 http://test.yuming.com:7001 (或http://123.0..0.1:7001)到内网 Git 地址 http://git.test.cn 上
- 公网服务器IP:123.0.0.1
- 公网服务器IP域名 test.yuming.com
- 内网本机IP:192.168.0.1
- 内网GitLab域名地址:http://git.test.cn
准备工作
- 需要有一台带域名的公网服务器(我的是阿里云,如下为小编随机写的ip及域名)
- 公网服务器IP:123.0.0.1
- 公网服务器IP域名 test.yuming.com
- frp 服务端、客户端工具
- nginx
工具下载
-
GitHub下载 frp :https://github.com/fatedier/frp/releases
-
Nginx 下载:http://nginx.org/en/download.html
服务端 Linux 安装
- 上传到服务器:cd …/home/outside/
- 解压:tar -zxvf frp_0.34.3_linux_amd64.tar.gz
- 重命名目录名:mv frp_0.34.3_linux_amd64 frps
这里主要关注4个文件,分别是frpc、frpc.ini和frps、frps.ini,前者两个文件是客户端所关注文件,后者两个文件是服务端所关注两个文件
- 配置服务端(公网服务器),首先删掉frpc、frpc.ini两个文件,然后再进行配置 frps.ini
[common]
# 服务器端端口
bind_addr = 0.0.0.0
bind_port = 7000
# 客户端连接凭证,自定义且与客户端一致
privilege_token = mytoken
# 最大连接数
max_pool_count = 5
bind_udp_port = 7031
kcp_bind_port = 7032
# 客户端映射的端口(这个就是公网访问使用的端口http://test.yuming.com:7001 )
vhost_http_port = 7001
vhost_https_port = 44001
subdomain_host = test.yuming.com
# 服务器看板的访问端口
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin
# 日志,如上面截图中的日志记录,方便我们查看日志(后面启动命令我直接加了这个)
enable_prometheus = true
log_file = ./frps.log
log_level = info
log_max_days = 3
- 启动服务
1. 常规启动(关闭窗口停用):./frps -c frps.ini
2. 带日志后台挂起:nohup ./frps -c frps.ini & tail -f nohup.out
3. 不带日志后台挂起:nohup ./frps -c frps.ini >/dev/null 2>&1 &
说明:>/dev/null 2>&1 &,表示丢弃。
4. 也可以设置开启自启动,放到服务器配置文件中,我这里不做自动启动配置,因为用一段就不用了,大家有需要的看我下面参考资料连接有配置示例
- FRP 服务端 Dashboard 监控台
通过 Dashboard 可以方便的查看 FRP 的状态以及代理统计信息展示,要使用这个功能首先需要在 FRP 服务端配置文件中指定 Dashboard 服务使用的端口,网页访问:http://123.0.0.1:7500/
token 说明
默认情况下只要知道 FRP 服务端开放的端口,任意 FRP 客户端都可以随意在服务端上注册端口映射,这样对于在公网上的 FRP
服务来说显然不太安全。FRP 提供了身份验证机制来提高 FRP 服务端的安全性。要启用这一特性也很简单,只需在 FRP 服务端和 FRP
客户端的 common 配置中启用 token 参数就行。启用这一特性后,只有 FRP 服务端和 FRP 客户端的 common 配置中的 token 参数一致身份验证才会通过,FRP
客户端才能成功在 FRP 服务端注册端口映射。
客户端 windows 安装
[common]
# 公网IP
server_addr = 123.0.0.1
# 与服务端 bind_port 对应
server_port = 7000
# 与服务端一致
privilege_token = mytoken
protocol = tcp
#7033
[web]
type = http
# 内网本及 ip
local_ip = 192.168.0.1
# 内网要代理的端口,与 nginx 对应,用于监听
local_port = 7001
use_compression =
use_encryption =
# 公网域名
custom_domains =test.yuming.com
# 配置可以通过ssh连接到内网的主机,如果需要的话,可以做此配置
[ssh]
# 特权模式,默认需要设置为true
privilege_mode = true
# 代理的类型为tcp
type = tcp
# 设置要代理的本地或局域网内的ip
local_ip = 192.168.0.1
# 设置ssh远程连接的本地端口,默认ssh都为22
local_port = 22
# 远程连接的端口,即使用ssh连接时需要通过此端口进行连接,注意:需要开启云服务器的该端口
remote_port = 6000
- 启动
- cmd 进入到文件存放目录,启动
./frpc -c ./frpc.ini
- 也可以把命令放到 .bat 文件中,每次双击执行即可
- 也可以类似服务端,配置开启自启(我觉得没必要,有需要的百度一下,这里偷懒了)
- 我现在用的是0.16版本,是exe文件,也是直接执行的
注意:
这里大家可能起不来,无法连接到服务器,仔细检查一下前面的配置是否匹配正确,如果正确还不能用先听一下,先进行下面步骤。
nginx 配置
1、下载后解压即可
2、配置代理,废话少说,上图
3、配置完别着急,还得继续往下进行
安全组、防火墙处理
阿里云安全组放开端口
Linux 服务器防火墙打开,并放开端口
-
查看防火墙状态:
firewall-cmd --state
如果终端输出running就表示防火墙已经开启了,反之就没有。可以通过查询防火墙的当前状态来确定服务器是否开启了防火墙
systemctl status firewalld
输出的信息中,会告诉你是否处于活动状态
-
启动防火墙
systemctl start firewalld
-
查看已经开放的端口
firewall-cmd --list-ports
这一步的操作就好比在Windows上的防火墙中新建一个入站规则。 -
只添加一个单独的端口(示例为7001
firewall-cmd --zone=public --add-port=7001p --permanent
-
添加一组连续的端口(示例为82到85)
firewall-cmd --zone=public --add-port=82-85/tcp --permanent
-
启动防火墙
firewall-cmd --reload
执行这条命令后,会输出success的字样表示已经重启成功了。
此时在去查看端口的情况 firewall-cmd --list-ports 就可以发现7001端口已经成功添加进去了。 -
关闭端口与关闭防火墙(扩展)
firewall-cmd --zone=public --remove-port=81/tcp --permanent
systemctl stop firewalld.service
-
浏览器访问 http://test.yuming.com:7001 或 http://123.0…0.1:7001 会直接进到内网 Git 地址 http://git.test.cn 上,成功了!
遇到问题
太忙了,先不写了,以后补
- 连接失败
检查服务端、客户端端口地址是否正确 - 连接间歇性中断
应该是阿里云服务器是低配版,给限流了,我升级了临时宽带到10M,好了
参考资料
- https://www.pianshen.com/article/753386607/
- https://www.pianshen.com/article/2061265428/
- http://www.kaixinit.com/info/maintenance/1611.html
- https://www.cnblogs.com/catcher1994/p/6923744.html?utm_source=itdadao&utm_medium=referral
内容总结
以上是互联网集市为您收集整理的内网穿透(Linux-windows)-frp全部内容,希望文章能够帮你解决内网穿透(Linux-windows)-frp所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。