Chiloh

Chiloh Wei

一个尝试理解世界,理解自己的人
jike
twitter

Frp 内網貫通

ずっと会社や出張中に、いつでも自宅のコンピュータにリモートアクセスし、ファイルを相互に転送できるようにしたいと思っていました。多くの方法を総合的に考慮した結果、現在使用している 阿里云 ECS サーバー にパブリック IP アドレスが割り当てられているため、最終的に Frp 内網穿透サービスを選択しました。現在、いつでもどこでも自宅の Windows コンピュータにアクセスするニーズはほぼ実現しています。

一、サーバーの設定#

CentOS サーバーを例に、Frps サーバーの設定手順は以下の通りです。

1. Go 環境のインストール#

Frp は Go 言語に基づいているため、以下のチュートリアルを参考にしてください:https://golang.org/doc/install#requirements。まず、Linux に Go 言語をインストールし、環境を設定します。

2. Frps のインストールと起動#

ここでは Frp サーバーのワンクリックスクリプト を推奨します。ソースコードの設定方法に比べて、より簡単です。手順の指示に従って、対応するポート番号を入力するだけです。

+------------------------------------------------------------+
|   frps for Linux Server, Author Clang ,Mender MvsCode     |
|      A tool to auto-compile & install frps on Linux        |
+------------------------------------------------------------+

Check your server setting, please wait...

+------------------------------------------------------------+
|   frps for Linux Server, Author Clang ,Mender MvsCode     |
|      A tool to auto-compile & install frps on Linux        |
+------------------------------------------------------------+


Please select frps download url:
[1].aliyun 
[2].github (default)
Enter your choice (1, 2 or exit. default [github]): 1
-----------------------------------
       Your select: 1    
-----------------------------------
Loading network version for frps, please wait...
frps Latest release file frp_0.34.3_linux_amd64.tar.gz
Loading You Server IP, please wait...
You Server IP:your_vps_ip
————————————————————————————————————————————
     Please input your server setting:
————————————————————————————————————————————

Please input frps bind_port [1-65535](Default Server Port: 5443):
frps bind_port: 5443


Please input frps vhost_http_port [1-65535](Default : 80):8080
frps vhost_http_port: 8080


Please input frps vhost_https_port [1-65535](Default : 443):8888
frps vhost_https_port: 8888


Please input frps dashboard_port [1-65535](Default : 6443):
frps dashboard_port: 6443


Please input frps dashboard_user(Default : admin):chiloh
frps dashboard_user: chiloh


Please input frps dashboard_pwd(Default : N2qeE26x):chiloh-wei
frps dashboard_pwd: chiloh-wei


Please input frps token(Default : p57D0IwDHL3LwpJC):your_token
frps token: your_token


Please input frps subdomain_host(Default : your_vps_ip):
frps subdomain_host: your_vps_ip


Please input frps max_pool_count [1-200]
(Default : 50):
frps max_pool_count: 50

Please select log_level
1: info (default)
2: warn
3: error
4: debug
-------------------------
Enter your choice (1, 2, 3, 4 or exit. default [1]): 
log_level: info


Please input frps log_max_days [1-30]
(Default : 3 day):
frps log_max_days: 3

Please select log_file
1: enable (default)
2: disable
-------------------------
Enter your choice (1, 2 or exit. default [1]): 
log_file: enable

Please select tcp_mux
1: enable (default)
2: disable
-------------------------
Enter your choice (1, 2 or exit. default [1]): 
tcp_mux: true

Please select kcp support
1: enable (default)
2: disable
-------------------------
Enter your choice (1, 2 or exit. default [1]): 
kcp support: true

============== Check your input ==============
You Server IP      : your_vps_ip
Bind port          : 5443
kcp support        : true
vhost http port    : 8080
vhost https port   : 8888
Dashboard port     : 6443
Dashboard user     : chiloh
Dashboard password : chiloh-wei
token              : your_token
subdomain_host     : your_vps_ip
tcp_mux            : true
Max Pool count     : 50
Log level          : info
Log max days       : 3
Log file           : enable
==============================================

Press any key to start...or Press Ctrl+c to cancel
frps install path:/usr/local/frps
config file for frps ... done
download frps ... done
download /etc/init.d/frps... done
setting frps boot... done

+---------------------------------------------------------+
|     Manager for Frps, Author Clang, Mender MvsCode      |
+---------------------------------------------------------+

Starting Frps(0.34.3)... done
Frps (pid 31075)is running.

+------------------------------------------------------------+
|   frps for Linux Server, Author Clang ,Mender MvsCode     |
|      A tool to auto-compile & install frps on Linux        |
+------------------------------------------------------------+


Congratulations, frps install completed!
================================================
You Server IP      : your_vps_ip
Bind port          : 5443
KCP support        : true
vhost http port    : 8080
vhost https port   : 8888
Dashboard port     : 6443
token              : your_token
subdomain_host     : your_vps_ip
tcp_mux            : true
Max Pool count     : 50
Log level          : info
Log max days       : 3
Log file           : enable
================================================
frps Dashboard     : http://your_vps_ip:6443/
Dashboard user     : chiloh
Dashboard password : chiloh-wei
================================================

frps status manage : frps {start|stop|restart|status|config|version}
Example:
  start: frps start
   stop: frps stop
restart: frps restart

** 注意:** 阿里云などのサービスプロバイダーを使用している場合、サーバーのセキュリティグループで上記スクリプト設定のポートを開放する必要があります。

二、クライアントの設定#

クライアントの設定方法はサーバーと似ており、手順は以下の通りです。

1. Frp c のインストールと起動#

  • このページから:https://github.com/fatedier/frp/releases 最新版の Windows バージョン Frp の圧縮ファイルをダウンロードします。
  • frpc.ini と frpc.exe を Windows の任意のディレクトリに解凍します。例えば D:\frp
  • 下記のコードを参考にして、クライアント設定ファイル frpc.ini を編集します。
[common]
#vpsの公衆アドレス
server_addr = your_vps_ip
#以前に設定した frps の bind_port
server_port = 5443
#以前に設定した frps の token
token=your_token
#nameは任意
[RDP]
#typeはtcpのまま
type = tcp
#ローカルアドレスはそのまま
local_ip = 127.0.0.1
#Windowsのリモート3389ポートはそのまま
local_port = 3389
#リモート時にアクセスするポート、値は[1024-65535]
remote_port = 6000

2. Frp c 自動起動の設定#

サーバーの設定が完了したら、自動起動を設定することをお勧めします。これにより、Windows コンピュータが起動すると、サービスがバックグラウンドで実行されます。具体的な手順は以下の通りです。

  • winsw をダウンロードし、winsw.exe に名前を変更します。
  • 新しい winsw.xml 形式のファイルを作成し、以下の内容を書き込みます:
<service>
    <id>frp</id>
    <name>frpc</name>
    <description>chiloh's frpc</description>
    <executable>frpc</executable>
    <arguments>-c frpc.ini</arguments>
    <onfailure action="restart" delay="60 sec"/>
    <onfailure action="restart" delay="120 sec"/>
    <logmode>reset</logmode>
</service>
  • 新しい登録.bat を作成し、以下の内容を書き込みます:
@echo off
if exist "%SystemRoot%\SysWOW64" path %path%;%windir%\SysNative;%SystemRoot%\SysWOW64;%~dp0
bcdedit >nul
if '%errorlevel%' NEQ '0' (goto UACPrompt) else (goto UACAdmin)
:UACPrompt
%1 start "" mshta vbscript:createobject("shell.application").shellexecute("""%~0""","::",,"runas",1)(window.close)&exit
exit /B
:UACAdmin
cd /d "%~dp0"
echo 現在の実行パスは:%CD%
echo 管理者権限を取得しました

winsw install
winsw start
  • 新しいアンインストール.bat を作成し、以下の内容を書き込みます:
@echo off
if exist "%SystemRoot%\SysWOW64" path %path%;%windir%\SysNative;%SystemRoot%\SysWOW64;%~dp0
bcdedit >nul
if '%errorlevel%' NEQ '0' (goto UACPrompt) else (goto UACAdmin)
:UACPrompt
%1 start "" mshta vbscript:createobject("shell.application").shellexecute("""%~0""","::",,"runas",1)(window.close)&exit
exit /B
:UACAdmin
cd /d "%~dp0"
echo 現在の実行パスは:%CD%
echo 管理者権限を取得しました

winsw stop
winsw uninstall
  • 登録.bat ファイルをダブルクリックして実行すると、サービスが登録されます。その後、ip+remote_port の形式で内網の Windows コンピュータにアクセスできるようになります。

Frp 遠隔デスクトップ接続

三、全体的な感想#

Frp の構築プロセスは、スクリプトを使用すればそれほど難しくなく、最大の要件はパブリック IP アドレスです。また、家庭用のスマートプラグを購入し、コンピュータが電源オンの際に自動的に起動するように設定すれば、自宅のコンピュータの電源をリモートで制御できるようになります。コンピュータが起動した後、自動的に内網穿透サービスが起動し、どこにいてもネットワークがあれば、タブレットやコンピュータを開いて自宅のコンピュータにアクセスし、リモート操作やファイル転送が可能です。

参考記事:

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。