Linux 配置frp,实现内网穿透

因为个人需要,整理的

参考:https://blog.csdn.net/u013144287/article/details/78589643
操作系统:1.公网服务器:CentOS
         2.内网服务器:CentOS
绑定域名:无
frp的作用
  • 利用处于内网或防火墙后的机器,对外网环境提供 http 或 https 服务。
  • 对于 http, https 服务支持基于域名的虚拟主机,支持自定义域名绑定,使多个域名可以共用一个80端口。
  • 利用处于内网或防火墙后的机器,对外网环境提供 tcp 和 udp 服务(ps:例如在家里通过 ssh 访问处于公司内网环境内的主机)
说明
  1. 实现功能
    ① 外网通过ssh访问内网机器(ps:主要验证实现此功能)
    ② 自定义绑定域名访问内网web服务

  2. 配置准备
    ① 公网服务器1台(演示用机为CentOS系统)
    ② 内网服务器1台(演示用机为CentOS系统)
    ③ 公网服务器绑定域名1个(实现1-①功能不需要公网服务器绑定域名,1-②功能必须需要公网服务器绑定域名)
    ④ 内网服务器部署一个web服务,可以用tomcat模拟,没有测试。

步骤
  1. 服务端(公网服务器)
    ① 下载压缩包
$ wget https://github.com/fatedier/frp/releases/download/v0.13.0/frp_0.13.0_linux_amd64.tar.gz

② 创建目录

$ mkdir -p /usr/local/frp
$ mv frp_0.13.0_linux_amd64.tar.gz /usr/local/frp

③ 解压

$ tar -zxvf frp_0.13.0_linux_amd64.tar.gz
$ cd frp_0.13.0_linux_amd64
$ rm frpc frpc.ini 
# frpc、frpc.ini为客户端配置文件,frps、frps.ini为服务端配置文件,此处删除客户端配置文件

④ 配置 frps.ini(服务端配置文件)

$ vi frps.ini 
   [common]
   bind_port = 7000                # 与客户端绑定的进行通信的端口,两端需一致
   vhost_http_port = 6081      # 访问客户端web服务自定义的端口号,任意一个没使用的端口号都可以

⑤ 运行

$ nohup ./frps -c ./frps.ini &   # 后台运行
  1. 客户端(内网服务器)
    ①下载压缩包
$ wget https://github.com/fatedier/frp/releases/download/v0.13.0/frp_0.13.0_linux_amd64.tar.gz

② 创建目录

$ mkdir -p /usr/local/frp
$ mv frp_0.13.0_linux_amd64.tar.gz /usr/local/frp

③ 解压

$ tar -zxvf frp_0.13.0_linux_amd64.tar.gz
$ cd frp_0.13.0_linux_amd64
$ rm frps frps.ini 
# frpc、frpc.ini为客户端配置文件,frps、frps.ini为服务端配置文件,此处删除服务端配置文件

④ 配置 frpc.ini(客户端配置文件)

$ vi frpc.ini
   [common]
   server_addr = ***.***.***.*** # 服务端(公网服务器)IP
   server_port = 7000              # 与服务端bind_port一致
   
   [ssh]
   type = tcp                             # 连接协议
   local_ip = 192.168.1.223     # 客户端(内网服务器)IP
   local_port = 22                     # ssh默认端口号
   remote_port = 12580           # 自定义的访问内部ssh端口号,任意一个没使用的端口号都可以
   
   # 公网通过ssh访问内部服务器

   [web]
   type = http                                     # 访问协议
   local_port = 8081                          # 内网web服务的端口号
   custom_domains = xxxx.xxxx.com  # 所绑定的公网服务器域名,一级、二级域名都可以

   # 公网访问内部web服务器以http方式(ps:因没有域名,暂时没有验证)

⑤ 运行

$ nohup ./frpc -c ./frpc.ini &   # 后台运行
访问方式
1.外网ssh访问内网服务器
ip:***.***.***.*** port:12580 用户名:linux服务器的用户  密码:linux服务器的密码
ip:***.***.***.*** port:22    用户名:linux服务器的用户  密码:linux服务器的密码
ip:xxxx.xxx.com    port:12580 用户名:linux服务器的用户  密码:linux服务器的密码
ip:xxxx.xxx.com    port:22    用户名:linux服务器的用户  密码:linux服务器的密码
2.自定义绑定域名访问内网web服务
xxxx.xxx.com:6081 
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
frp是一款开源的高性能的反向代理软件,可以实现内网穿透。下面是在Linux上使用frp实现内网穿透的步骤: 1. 下载frp 可以从frp官网下载对应的版本。比如,下载linux_amd64版本的frp: ``` wget https://github.com/fatedier/frp/releases/download/v0.37.1/frp_0.37.1_linux_amd64.tar.gz ``` 2. 解压缩frp 使用以下命令解压缩frp文件: ``` tar -zxvf frp_0.37.1_linux_amd64.tar.gz ``` 3. 配置frp 在解压后的文件夹中,可以看到frp配置文件夹`frp_0.37.1_linux_amd64/frp_0.37.1_linux_amd64`。进入该文件夹,可以看到两个配置文件:`frpc.ini`和`frps.ini`。 - `frpc.ini`是客户端配置文件,用于将内网服务器映射到公网上。 - `frps.ini`是服务端配置文件,用于接收来自客户端的请求,并将其转发到内网服务器上。 我们需要修改`frpc.ini`配置文件,将其中的以下几个参数设置为正确的值: ``` [common] server_addr = x.x.x.x # 公网服务器IP地址 server_port = 7000 # 公网服务器端口 token = 12345678 # 用于认证的token [web] type = http local_port = 80 # 内网服务器的端口 custom_domains = example.com # 绑定的域名 ``` 其中,`x.x.x.x`是公网服务器的IP地址,`12345678`是用于认证的token,`80`是内网服务器的端口,`example.com`是绑定的域名。 4. 启动frp配置好`frpc.ini`文件后,使用以下命令启动frp客户端: ``` ./frpc -c ./frpc.ini ``` 如果一切正常,可以看到类似以下的输出信息: ``` 2021/05/06 15:05:40 [I] [proxy_manager.go:144] [3c4f8980] proxy added: [web] 2021/05/06 15:05:40 [I] [control.go:200] [3c4f8980] [web] login to server success, get run id [3c4f8980] 2021/05/06 15:05:40 [I] [control.go:256] [3c4f8980] [web] start proxy success ``` 5. 测试frp 在浏览器中输入绑定的域名,如果能够访问到内网服务器上的页面,说明内网穿透已经成功。 以上就是在Linux上使用frp实现内网穿透的步骤,希望对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值