娃哈哈好喝-真的!
技术够用就行,吃好喝好睡好!

frp内网穿透代理访问http服务

frp内网穿透代理访问http服务

需要一台具有公网ip的服务器,windows、linux都可以,本次以Linux为例,系统版本:centos 7.6,frp版本:0.46

下载地址:

https://github.com/fatedier/frp/tags

1、服务端配置

frp解压后的路径和配置文件如下

[root@server frp]# pwd
/data/frp
[root@server frp]# ls
frpc frpc_full.ini frpc.ini frp.log frps frps_full.ini frps.ini
[root@server frp]# cat frps.ini
[common]
#frps使用的端口,用来和frpc通信
bind_port = 7000

#面板端口,可以不开启,
dashboard_port = 7500
#面板绑定ip
dashboard_addr = 0.0.0.0
#面板认证用户和密码
dashboard_user = admin
dashboard_pwd = admin

#认证方式,用于和frps和frpc之间的认证,
authentication_method = token
#frpc也要配置
token = 1234@abcd

#日志文件
log_file = /data/frp/frp.log
#日志级别
log_level = debug
#日志保留天数
log_max_days = 3

#使用http代理端口
vhost_http_port = 7080
#服务端的subdomain_host需要和客户端配置文件中的subdomain、local_port配合使用
# 可通过{subdomain}.{subdomain_host} 的域名格式来访问自己本地的 web 服务。
# 假如服务端的subdomain_host为zhazha.vip,客户端某个配置组中的
# subdomain为a,local_port为8080,
# 则访问 a.zhazha.vip ,等同于访问本地的localhost:8080
subdomain_host = zhazha.vip

# 开启prometheus监控
enable_prometheus = true

# 开启tcp穿透端口范围(可选)
allow_ports = 20000-30000
[root@server frp]#

将服务写入到系统服务,方便启动

[root@server frp]# cat /etc/systemd/system/frps.service
[Unit]
Description=frps service

[Service]
ExecStart=/data/frp/frps -c /data/frp/frps.ini
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=frp-service
User=root

[Install]
WantedBy=multi-user.target

[root@server frp]# systemctl start frps.service

如果使用http代理服务,需要一台http服务器,这里使用的是nginx,下面是nginx配置:

server {
  listen 80;
  server_name *.zhazha.vip;

  location / {
  #将来自*.zhazha.vip这个域名的请求全部转发到本地7080端口,也就是frps服务的vhost_http_port端口
      proxy_pass http://127.0.0.1:7080;
      proxy_set_header Host $host:80;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
      proxy_connect_timeout 7d;
      proxy_send_timeout 7d;
      proxy_read_timeout 7d;
  }
}
2、客户端配置
[root@client frp]# pwd
/data/frp
[root@client frp]# ls
frpc frpc_full.ini frpc.ini frps frps_full.ini frps.ini LICENSE
[root@client frp]# cat frpc.ini
[common]
server_addr = 222.11.22.33
server_port = 7000

[web-a]
type = http
local_ip = 192.168.9.9
local_port = 8080
subdomain = a
#是否加密(可选)
use_encryption = true
#是否压缩(可选)
use_compression = true

[web-b]
type = http
local_ip = 192.168.9.9
local_port = 8081
subdomain = b

[web-c]
type = http
local_ip = 192.168.9.9
local_port = 80
subdomain = c
[root@client frp]#

服务启动和frps相同,参照上面,将frps改成frpc即可

3、域名解析

将要使用的域名解析道frps服务器的ip

例如:

a.zhazha.vip 222.11.22.33

b.zhazha.vip 222.11.22.33

c.zhazha.vip 222.11.22.33

4、其他服务

ssh和rdp,在frpc.ini文件中添加如下内容

[ssh]
type = tcp
local_ip = 192.168.9.1
local_port = 22
remote_port = 222

[rdp]
type = tcp
local_ip = 192.168.9.1
local_port = 3389
remote_port = 33890

通过frps的公网ip加remote_port端口就可以访问对应的内网服务,如访问22端口:

ssh 222.11.22.33 222

赞(0)
未经允许不得转载:娃哈哈好喝 » frp内网穿透代理访问http服务
分享到: 更多 (0)