内网穿透frp的简单使用

背景

阿里云服务器越来越水,一个2核4G的虚机居然撑不住一个前端的构建任务,不知道是不是近两年阿里对虚机的资源使用做了限制,逼迫你不得不购买更高的配置。

久闻frp的大名,今日一试,果然是香。
frp原理简单:在公网和内网机器之间建立通道,然后将外网数据转发到内网。

场景一:外网访问内网www服务

目标:使内网的Jenkins服务器被外网访问。即通过http://cicd.mydomain.cn访问内网的jenkins。
当然,先要配置域名,映射到外网服务器上。
然后,配置一下nginx:

server {
    
    
        listen 80;
        server_name cicd.mydomain.cn;
        autoindex on;

        location / {
    
    
            proxy_pass http://localhost:7070/;
            proxy_set_header Host $host;
            proxy_redirect default;
        }
}

frp服务端配置

[common]
bind_port = 7788
vhost_http_port = 7070

[web] 
type = http #为服务类型,可以设为http,https
custom_domains = mydomain.cn  #为要映射的域名,记得域名的A记录要解析到外网主机的IP。

启动服务端:

frps -c ./frps.ini

客户端设置

[common]
server_addr = 公网IP
server_port = 7788

[www]
type = http
local_ip = 127.0.0.1
local_port = 8080
custom_domains = cicd.mydomain.cn

启动客户端:

frpc -c ./frpc.ini

这样就可以访问了。

场景二:外网ssh访问内网机器

见官方文档。https://gofrp.org/docs/examples/ssh/

场景三:将内网的sock5代理提供给外网用

故事是这样的,我有个MacOS上的vpn代理,能用于学科上网,但只能被本机使用。于是我想在公网上搭建一个sock5代理,能走我家里这台Mac本的通道。

服务端配置

[common]
bind_port = 7788
vhost_http_port = 7070

[sock5]
type=tcp

客户端配置

[common]
server_addr = <公网运行frps的IP>
server_port = 7788

[plugin_socks5]
type = tcp
remote_port = 1081
local_ip = 127.0.0.1
local_port = 12360
#plugin = socks5

注意:plugin和local_ip只能二选一, 此处12360是本地运行代理的服务器端口。
当启动客户端frpc后,远程frps会增加一个新的监听端口1081。

如果你公网使用的云服务器,记得要放开相应的端口:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/jgku/article/details/130336604
今日推荐