前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >frp配置多端口内网穿透?frp多端口怎么配置?

frp配置多端口内网穿透?frp多端口怎么配置?

原创
作者头像
凯哥Java
发布2023-12-22 12:49:56
4301
发布2023-12-22 12:49:56
举报
文章被收录于专栏:凯哥Java凯哥Java

使用frp作为内网穿透的时候,有时候,我们需要多个端口穿透,怎么配置呢?

思考: 我们知道frp要想内网穿透,需要配置服务端和客户端。如果需要直接访问80端口的话,需要还需要在nginx做配置。那么下面,咱们就从这三个方面进行详细配置:

一、frp服务端配置

在服务器上找到frps.ini配置文件,然后配置信息如下:

代码语言:c
复制
[common]
#穿透监听端口与地址(0.0.0.0表示允许任何地址)
bind_addr = 0.0.0.0
bind_port = 7000
# 跟frpc通讯验证密钥
token = 可以自定义的token.如果需要的话请自行配置。如果不需要,可以注释掉

subdomain_host = 访问的域名。如果需要的话修改成自己的



#服务器用以显示连接状态的站点端口,以下配置中可以通过访问IP:7500登录查看frp服务端状态等信息
dashboard_addr = 0.0.0.0
dashboard_port = 7500
dashboard_user = 自定义的用户名
dashboard_pwd = 自定义的密码

#日志路径
log_file = /home/frp_0.46.1_linux_amd64/log/frps.log

#以下是配置多端口的
#端口8079是博客管理后台的项目
[tcp_blog-admin]
type = tcp
local_port = 8079
listen_port = 8079

#端口8080是博客前台项目访问地址
[tcp_blog]
type = tcp
local_port = 8080
listen_port = 8080

#端口8082是其他项目访问的
[tcp_app3]
type = tcp
local_port = 8082
listen_port = 8082

配置完成之后,如果将frp配置成随机启动的。可以直接执行以下命令,来重启frp

代码语言:c
复制
systemctl restart frps

扩展: Centos7下Frp服务端后台运行以及开机自启(Frp客户端同理) 。可以参考:http://www.kaigejava.com/newuiarticle/detail/769 这篇文章

二、Nginx配置

在Nginx的配置文件中添加如下配置:

代码语言:c
复制
# 端口8080映射到80端口
server {
    listen 80;
    server_name blog.xxx.com;

    location ~^/ {
        resolver 8.8.8.8;
                proxy_pass http://$host:8080;
                proxy_redirect off;
                client_max_body_size 10m;   
                client_body_buffer_size 128k;
                proxy_connect_timeout 90;
                proxy_read_timeout 90;
                proxy_buffer_size 6k;
                proxy_buffers 6 128k;
                proxy_busy_buffers_size 256k;
                proxy_temp_file_write_size 256k;
        
                proxy_set_header Host $http_host;
    }

    location ~ .*\.(gif|jpg|png|bmp|swf|css|js)$ {
        proxy_pass http://$host:8080;
        expires 30d;
    }

    location ~ .*\.(js|css)?$ {
        expires 1d;
    }
}

# 端口8079映射到80端口
server {
    listen 80;
    server_name blog-admin.mmmm.com;

    location ~^/ {
        resolver 8.8.8.8;
                proxy_pass http://$host:8079;
                proxy_redirect off;
                client_max_body_size 10m;   
                client_body_buffer_size 128k;
                proxy_connect_timeout 90;
                proxy_read_timeout 90;
                proxy_buffer_size 6k;
                proxy_buffers 6 128k;
                proxy_busy_buffers_size 256k;
                proxy_temp_file_write_size 256k;
        
                proxy_set_header Host $http_host;
    }

    location ~ .*\.(gif|jpg|png|bmp|swf|css|js)$ {
        proxy_pass http://$host:8079;
        expires 30d;
    }
    location ~ .*\.(js|css)?$ {
        expires 1d;
    }
}

# 端口8082映射到80端口
server {
    listen 80;
    server_name app3.nnn.com
    .com;

     location ~^/ {
	        resolver 8.8.8.8;
        proxy_pass http://$host:8082;
        proxy_redirect off;
        client_max_body_size 10m;   
        client_body_buffer_size 128k;
        proxy_connect_timeout 90;
        proxy_read_timeout 90;
        proxy_buffer_size 6k;
        proxy_buffers 6 128k;
        proxy_busy_buffers_size 256k;
        proxy_temp_file_write_size 256k;

        proxy_set_header Host $http_host;
    }

    location ~ .*\.(gif|jpg|png|bmp|swf|css|js)$ {
        proxy_pass http://$host:8082;
        expires 30d;
    }
    location ~ .*\.(js|css)?$ {
        expires 1d;
    }
}

需要注意:server_name 不能配置一样。如果配置一样,在执行下面的重启命令时候,会提示失败

配置完Nginx之后,需要重启Nginx的。重启命令:

代码语言:c
复制
/usr/local/nginx/sbin/nginx -s reload

三、frpc.ini配置

配置完frp的服务端、Nginx之后,我们现在再来配置frp客户端

代码语言:c
复制
[common]
server_addr = frp服务端所服务器所在的ip
server_port = 7000
token = 这里的token必须和frps.ini里面配置的一致

# 配置8079端口
[tcp_blog-admin]
type = tcp
local_ip = 127.0.0.1
local_port = 8079
remote_port = 8079
custom_domains = blog-admin.xxx.com

# 配置8080端口
[tcp_blog]
type = tcp
local_ip = 127.0.0.1
local_port = 8080
remote_port = 8080
custom_domains = blog.mmmm.com

# 配置8082端口
[tcp_app3]
type = tcp
local_ip = 127.0.0.1
local_port = 8082
remote_port = 8082
custom_domains = app3.nnn.com

需要注意:custom_domains 不能配置一样。如果配置一样,在执行重启frp客户端的时候,会提示错误信息的。

配置完成之后,重启frp的客户端。 可以看到如图所示,说明已经frp多端口配置成功

如果还是不放心,可以登录frp的管理页面进行查看。

frp管理页面就是在frps.ini里面配置7500相关的用户名和密码。

访问地址就是frp服务端的ip:7500。然后输入用户名和密码,就可以访问了。在Proxies菜单下,点击TCP,可以看到对应的端口。如下图所示:

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、frp服务端配置
  • 二、Nginx配置
  • 三、frpc.ini配置
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档