java要多思考下

          成長^_^

             ::  :: 新隨筆 ::  ::  :: 管理 ::
            33 隨筆 :: 0 文章 :: 19 評論 :: 0 Trackbacks
          由于需要在外使用公司內部網絡環境,故采用了FRP做了端口轉發,以下是一些配置要點:

          1、服務端配置
              服務器必須是公網服務器,可以在AWS或ALIYUN開通,得到公網IP。 
              服務器配置非常簡單,只需要修改frps.ini文件,加入以下配置: 
          [common]
          bind_port = 7777          #服務器監聽地址,配合公司內網機器使用
          vhost_http_port=80      #服務器監聽80端口
          vhost_https_port=443   #服務器監聽443端口,Https
           
          2、客戶端配置
              客戶端配置復雜度隨著業務的復雜度的增加而變大。
              客戶端配置,修改frpc.ini文件,配置如下:
          [common]
          server_addr = xxx.xxx.xxx.xx           #公網服務器的外網IP地址
          server_port = 7777                          #公網服務器的監聽地址,同frps.ini中的bind_port配置

          [ssh]                                               #暴露公司內網的ssh服務
          type = tcp                                       #選擇tcp類型
          local_ip = 127.0.0.1                         #內網機器ip,  frp客戶端程序所在的內網機器
          local_port = 22                                #內網機器允許的ssh服務登錄端口
          remote_port = 7022                         #內網機器監聽的外網ssh登錄端口, 比如在家里訪問公司內網服務器,只需要輸入 ssh -p 7022 user@xxx.xxx.xxx.xxx即可 

          [web]                                              #暴露公司內網的git代碼托管服務
          type = http                                      #選擇http類型
          local_port = 88                                #gitlab本地監聽地址,默認是80,需要修改gitlab配置為88或其他端口,以避免與內網nginx端口占用的沖突
          custom_domains = git.domain.com   #外網域名,該域名可以在dns解析到xxx.xxx.xxx.xxx的外網服務器ip上,這樣在外就可以通過域名訪問公司內部服務         

          [web2]                                            #暴露更多的公司內網測試環境服務
          type = http
          local_port = 80                                #nginx本地監聽地址,外網進來的服務通過nginx匹配各種domain來區分請求,轉發
          custom_domains = test.domain.com

          [web3]
          type = http
          local_port = 80
          custom_domains = test2.domain.com

          [tcp1]                                             #暴露公司內網的socket服務
          type = tcp                                       #選擇tcp類型
          local_port = 1111                            #本地socket監聽端口
          remote_port = 1111                        #外網服務器的接收端口

          [tcp2]                                             #暴露更多內網socket服務
          type = tcp
          local_port = 2222
          remote_port = 2222

          [mysql]                                           #暴露內網mysql服務
          type = tcp                                       #選擇tcp類型
          local_port = 3306                            #mysql監聽端口
          remote_port = 3306

          3、啟動服務
              ./start.sh  client啟動腳本如下:(server端類似)
          #!/bin/sh

          PID=`ps aux|grep frp|grep -v 'grep'|awk '{print $2}'`
          if [ "$PID" = "" ]; then
           echo 'start frpc now.'
           ./frpc -c ./frpc.ini > c.log &
           sleep 2
           tail -n 20 c.log
           echo 'start finished'
          else
           echo $PID 'stop frpc'
           kill -9 $PID
           ./frpc -c ./frpc.ini > client.log &
           echo 'start it now'
           sleep 2
           tail -n 20 client.log
           echo 'start finished'
          fi

          4、其他問題
              1、如果使用了云服務,如aliyun,aws等,需要在安全組中開通以上端口(remote_port)的訪問權限,否則外網到內網的鏈路無法通過。
              2、服務端運行后,客戶端運行,隨后可以通過外網域名直接訪問內網服務



          posted on 2018-11-13 15:06 java要多思考下 閱讀(5592) 評論(0)  編輯  收藏 所屬分類: 系統運維技術研究
          主站蜘蛛池模板: 当涂县| 古蔺县| 广德县| 平江县| 广宁县| 农安县| 洛浦县| 延寿县| 延安市| 扶余县| 仁寿县| 仙居县| 山阴县| 化州市| 景洪市| 赫章县| 师宗县| 张家界市| 新津县| 虞城县| 繁昌县| 太仆寺旗| 昌图县| 札达县| 宣汉县| 株洲市| 喜德县| 青田县| 苗栗市| 宕昌县| 永定县| 乌拉特前旗| 胶南市| 高雄县| 沂源县| 崇信县| 南漳县| 西安市| 吐鲁番市| 宜良县| 清苑县|