内网穿透FRP入门

准备条件

1.有公网IP的服务器一台,笔者为centos7 64位

2. 本地能联网的电脑一台,笔者位win10 64位

frp下载:https://github.com/fatedier/frp/releases

服务端配置

Linux版下载:https://github.com/fatedier/frp/releases/download/v0.18.0/frp_0.18.0_linux_amd64.tar.gz

cd /usr/local/
mkdir frp
cd frp
wget https://github.com/fatedier/frp/releases/download/v0.18.0/frp_0.18.0_linux_amd64.tar.gz
tar -zxvf frp_0.18.0_linux_amd64.tar.gz
cd frp_0.18.0_linux_amd64

其中frps开头的是给服务器用的,frpc是给客户端用的

下面是一个简单的http映射的例子

编辑frps.ini

nano frps.ini

内容如下

# frps.ini
[common]
bind_addr = 0.0.0.0
bind_port = 7000
vhost_http_port = 8090
#面板配置
dashboard_port = 7500
#特权配置
privilege_mode = true
privilege_token = 123456789099

[http]
type = http
custom_domains = frp.vvvtimes.com
启动
./frps -c frps.ini

客户端配置

再看windows客户端的配置

windows版下载:https://github.com/fatedier/frp/releases/download/v0.18.0/frp_0.18.0_windows_amd64.zip

下载之后配置frpc.ini内容如下

# frpc.ini
[common]
server_addr = 114.215.87.93
server_port = 7000
privilege_token = 123456789099

[web]
privilege_mode = true
type = http
local_ip = 127.0.0.1
local_port = 80
custom_domains = frp.vvvtimes.com
pool_count = 10

启动

frpc -c frpc.ini

这里面本地最简单的是搞个nginx运行即可,不用开IIS/Apache/tomcat

一些访问地址

控制面板:http://114.215.87.93:7500/

代理的web访问地址:http://frp.vvvtimes.com:8090/

代理的web访问地址可以看到nginx首页即表明配置成功(若本地未连接上也会显示类似nginx首页,实际上是frp的错误页)


frp与nginx共存

通常我们的公网服务器已经部署了其他网站,我们需要将frp与我们的nginx共存,这一点可以通过反代本地端口实现

编辑nginx的conf文件

cd /usr/local/nginx/conf/vhost/
nano frp.vvvtimes.com.conf

代码如下

server
    {
        listen 80;
        #listen [::]:80;
        server_name frp.vvvtimes.com ;
        

        location /
        {
            proxy_pass http://127.0.0.1:8090;
            proxy_set_header Host       $host:80;
            proxy_set_header X-Real-IP      $remote_addr;
            proxy_set_header X-Forward-For      $proxy_add_x_forwarded_for;
            proxy_hide_header X-Powered-By;
        }

        access_log off;
    }
重载nginx配置
lnmp nginx reload
通过上述配置之后我们可以直接通过80端口访问web,即

服务端开机自启

这里只讲centos7的
关键代码
nohup /usr/local/frp/frp_0.18.0_linux_amd64/frps -c /usr/local/frp/frp_0.18.0_linux_amd64/frps.ini >/usr/local/frp/frp_0.18.0_linux_amd64/frps/log.txt 2>&1 &

编辑frp.service文件

nano /lib/systemd/system/frp.service

内容如下

[Unit]    
Description=frp Server  
After=network.target    
     
[Service]    
Type=simple  
ExecStart=/usr/bin/nohup /usr/local/frp/frp_0.18.0_linux_amd64/frps -c /usr/local/frp/frp_0.18.0_linux_amd64/frps.ini >/usr/local/frp/frp_0.18.0_linux_amd64/frps/log.txt 2>&1 &
ExecStop=/bin/kill -s QUIT $MAINPID  
PrivateTmp=true    
     
[Install]    
WantedBy=multi-user.target   
启动
systemctl start frp
状态
systemctl status frp
设置开机自启
systemctl enable frp

windows客户端开机自启

使用Instsrv.exe+Srvany.exe即可

网上有现成的脚本:https://www.long33.cn/f.php?k=e9727

虽然是针对0.16写的,也可以直接用最新版覆盖后使用。





猜你喜欢

转载自blog.csdn.net/gsls200808/article/details/80271840