Frp加Nginx内网穿透代理web服务

Frp加Nginx内网穿透代理web服务

  • 一、获取frp软件
  • 二、服务器配置
  • 三、客户端配置

一、获取frp软件

  • Frp下载地址(https://github.com/fatedier/frp/releases)
  • 使用scp上传Frp包到服务器(有公网IP的服务器 ,例如1.1.1.1)
    ssh frp_***_linux_amd64.tar.gz [email protected]:/home/ubuntu/ 
    
  • 使用scp上传Frp包到客户端(内网服务器,例如 2.2.2.2)
    ssh frp_***_linux_amd64.tar.gz [email protected]:/home/ubuntu/ 
    
  • frp安装到/opt/frp/目录 (服务器和客户端一致)
    sudo mkdir /opt/frp
    sudo cp frp_***_linux_amd64.tar.gz /opt/frp
    cd /opt/frp
    tar xvf frp_***_linux_amd64.tar.gz
    sudo rm *.gz
    

二、服务器配置

  • 配置服务器frps.ini
     [common]
     # 绑定服务器本机的端口
     bind_port = 7000 
     #客户端http服务通过下面端口转发到公网
     vhost_http_port = 7001  
     vhost_https_port = 7002 
     # 自己的域名
     subdomail_host = www.yourdomain.com 
    
  • 启动frps测试
    ./frps -c ./frps.ini
    
  • 添加frps开机自启动
    nano /etc/systemd/system/frps.service
    
    [Unit]
    Description=frps service
    After=network.target syslog.target
    Wants=network.target
    
    [Service]
    Type=simple
    ExecStart=/opt/frp/frp_0.32.1_linux_amd64/frps -c /opt/frp/frp_0.32.1_linux_amd64/frps.ini
    
    [Install]
    WantedBy=multi-user.target
    
    sudo systemctl enable frps.service
    
  • 安装nginx
    sudo apt install nginx
    
    配置nginx端口代理https
    nano /etc/nginx/sites-available/frps.conf
    
    #server {
    ##   listen       80;
    #    server_name  www.yourdomain.com;
    #    rewrite ^ https://$http_host$request_uri? permanent;
    #    server_tokens off;
    #}
    server {
            listen 443 ssl;
            server_name www.yourdomain.com;
            charset utf-8;
            ssl_certificate /home/ubuntu/ssl_cert/cacert.pem;
            ssl_certificate_key /home/ubuntu/ssl_cert/privkey.pem;
            ssl_dhparam /etc/nginx/dhparam.pem;
            
            ssl_session_timeout 5m;
            ssl_session_cache shared:SSL:5m;
            location / {
                    resolver 8.8.8.8;
                    proxy_ssl_server_name on;
                    proxy_pass https://$host:7002;
                    proxy_set_header    Host            $host:$server_port;
                    proxy_set_header    X-Real-IP       $remote_addr;
                    proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
                    proxy_hide_header   X-Powered-By;
    
                    access_log      /var/log/nginx/frps.log;
                    error_log       /var/log/nginx/frps_err.log;
            }
    }
    
    删除nginx默认代理配置
    $ sudo rm /etc/nginx/sites-enabled/default  
    
    创建符号链接
    $ sudo ln -s /etc/nginx/sites-available/frps.conf /etc/nginx/sites-enabled/frps.conf 
    
    重启nginx
    $ sudo nginx -s reload
    

三、客户端配置

  • 配置服务器frpc.ini
    [common]
    # 服务器地址
    server_addr = 1.1.1.1 
    # 服务器开启的端口
    server_port = 7000
    # 开启ssh
    [ssh]  
    type = tcp
    local_ip = 127.0.0.1
    local_port = 22
    # 远程ssh端口
    remote_port = 6000
    # 开启http服务
    [web]
    type = http 
    local_port = 80 
    # 我们自己的域名,可以通过这个域名访问这个机器
    custom_domains = www.yourdomain.com  
    
    # 开启https服务
    [web1] 
    type = https 
    local_port = 443 
    custom_domains = www.yourdomain.com
    
  • 启动frpc测试
    ./frpc -c ./frpc.ini
    
  • 添加frpc开机自启动
    nano /etc/systemd/system/frpc.service
    
    [Unit]
    Description=frpc service
    After=network.target syslog.target
    Wants=network.target
    
    [Service]
    Type=simple
    ExecStart=/opt/frp/frp_0.32.1_linux_amd64/frpc -c /opt/frp/frp_0.32.1_linux_amd64/frpc.ini
    
    [Install]
    WantedBy=multi-user.target
    
    sudo systemctl enable frpc.service
    

你可能感兴趣的:(NAS,nginx,linux)