Frp加Nginx內網穿透代理web服務

一、獲取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
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章