Login

Navigation

This articles is published 1074 days ago and last updated 1010 days ago, some information may be out of date.

入坑IMTNAS星際魔盒2 - MCS7配置免費內網穿透frp

MCS7_frp_01.png

簡言:
在IPV4地址短缺的情況之下,不是每個家庭都分配到公網的IPV4地址。如要訪問家中的設備就變得不方便,坊間有五花八門方法可以實現訪問家中設備,如TeamViewer、 Zero-Tier、 花生殼 等等, 但因為每地區的網絡環境不同,體驗也不一樣。 這裡我推薦frp實現家中設備在內網穿透到網外。

為什麼是frp:
frp 是一個高性能的反向代理應用,可以幫助您輕鬆地進行內網穿透,對外網提供服務,支持 tcp, http, https 等協議類型,並且 web 服務支持根據域名進行路由轉發。

MCS7_frp_02.png


配置前準備:
申請域名1個, 無論是付費還是免費的

(如果沒有, 可以購買一個也很便宜)

DNSPod 域名

MCS7_frp_03.png

MCS7_frp_04.png

華為雲 域名

MCS7_frp_05.png

以CloudFlare設定為例:
我的域名是: kingsir.ga

想新增一個別名稱為imtnas給魔盒做訪問

MCS7_frp_06.png


選取: DNS
記錄類型為: CNAME
名稱: imtnas
目標: free.frp.ioiox.com

目標: free.frp.ioiox.com 是免費的frp服務器

MCS7_frp_07.png

等片刻,PING一下,兩個地址是否一樣.


安裝frpc(即frpc客戶端):
首先SSH登陸星際魔盒及獲得root權限

MCS7_frp_08.png

用戶名: admin
密碼: admin
sudo -i

MCS7_frp_09.png

下載及安裝frp客戶端(ARMV7):

FRP_VERSION="0.36.2" && wget https://github.com/fatedier/frp/releases/download/v${FRP_VERSION}/frp_${FRP_VERSION}_linux_arm.tar.gz && tar -zxvf frp_${FRP_VERSION}_linux_arm.tar.gz && mv frp_${FRP_VERSION}_linux_arm/frpc /usr/local/bin && rm frp_${FRP_VERSION}_linux_arm.tar.gz && rm -rf frp_${FRP_VERSION}_linux_arm

建立一個空白的資料夾 (存放frpc 配置文件):

mkdir -p /etc/frp

MCS7_frp_10.png

創建frpc 配置文件:

cat >> /etc/frp/frpc.ini << EOF
[common]
server_addr = free.frp.ioiox.com
server_port = 7007
token = www.ioiox.com

admin_addr = 10.10.1.51
admin_port = 7400
admin_user = admin
admin_pwd = admin

[imtnas]
type = http
local_ip = 10.10.1.51
local_port = 8060
custom_domains = imtnas.kingsir.ga
EOF

配置文件說明:

admin_addr = 10.10.1.51 # 坊問Dashboard的地址 (即魔盒IP)
admin_port = 7400 # Dashboard端口
admin_user = admin # Dashboard用戶名
admin_pwd = admin # Dashboard密碼

[imtnas] # 服務名稱(多個服務不能重名)
type = http # http協議
local_ip = 10.10.1.51 # 需穿透的設備內網IP(我的魔盒是10.10.1.51)
local_port = 8060 # 8060是導航頁面的端口
custom_domains = imtnas.kingsir.ga # 填寫你登記的域名


增設frpc為系統服務:
系統服務可以做到 啟動/停止/重新啟動/查看狀態 的功能.

創建frpc的守護進程文件:(在ssh內貼上, enter)

cat >> /etc/init.d/frpc << EOF
#!/bin/sh

### BEGIN INIT INFO
# Provides:          frpc
# Required-Start:    $local_fs $network
# Required-Stop:     $local_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: frpc service deamon
# Description:       frpc service daemon
### END INIT INFO

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/local/bin/frpc
DAEMON_OPTS=-c\ /etc/frp/frpc.ini
NAME=frpc
USER=root

set -e
. /lib/lsb/init-functions

start() {
        echo -n "Starting $NAME: "
        start-stop-daemon --start \
                --user $USER \
                -m --pidfile /var/run/$NAME.pid \
                -b --exec $DAEMON -- $DAEMON_OPTS || true
        echo "$NAME."
}

stop() {
        echo -n "Stopping $NAME: "
        start-stop-daemon --stop \
                --pidfile /var/run/$NAME.pid || true
        echo "$NAME."
}

status() {
        status_of_proc -p /var/run/$NAME.pid "$DAEMON" $NAME && exit 0 || exit $?
}

case "$1" in
start)
  start
        ;;
stop)
  stop
        ;;
status)
  status
        ;;
restart)
  stop
  sleep 2
  start
        ;;
*)
        echo "Usage: $NAME {start|stop|restart|status}"
        exit 1
        ;;
esac
exit 0
EOF

增加可執行權限:

chmod +x /etc/init.d/frpc

啟動frpc

/etc/init.d/frpc start

重新啟動frpc

/etc/init.d/frpc restart

狀態觀察:

/etc/init.d/frpc status

現在可以透過域名地址瀏覽導航頁面

MCS7_frp_11.png


添加開機啟動frpc進程:
sed -i -e ''/# By default this script does nothing./a\/etc/init.d/frpc start' /etc/rc.local
在MCS7使用"update-rc.d frpc defaults"這命令
不能新增開機啟動,如有解決方法請告知. 謝謝!

frp Dashboard
通過瀏覽器查看 frp 的狀態以及編輯 frpc.ini 中內容

如新增穿透設備, 更新域名等

MCS7_frp_12.png

打開瀏覽器通過 http://魔盒IP:7400 訪問 dashboard 界面。

舉個例子:

我想新增FileBrowser服務到網外訪問

以CloudFlare設定為例:

我的域名是: kingsir.ga
想新增一個名稱為files的別名 訪問FileBrowser服務

MCS7_frp_13.png


選取: DNS
記錄類型為: CNAME
名稱: files
目標: free.frp.ioiox.com

目標: free.frp.ioiox.com 是免費的frp服務器

MCS7_frp_14.png

打開瀏覽器通過 http://魔盒IP:7400 訪問 dashboard 界面。

應用IP地址端口子目錄
Frp(Dashboard)魔盒IP7400

MCS7_frp_15.png

加入這段內容:

[filebrowser]
type = http
local_ip = 10.10.1.51
local_port = 8080
custom_domains = files.kingsir.ga

MCS7_frp_16.png

MCS7_frp_17.png

MCS7_frp_18.png

通過瀏覽器 http://files.kingsir.ga 訪問 FileBrowser服務


結語:
本人使用frp已經2年,十分穩定,可以在複雜的網路環境中做穿透(如公司大內網), 而且功能非常豐富。 雖然設定上有少許煩瑣,但是配置成功,就能一勞永逸

frp客戶端的連線速度更多時候取決與frp伺服務器的帶寬,如果長期有大文件操作還是建議自行架設frp伺服務器使用。


參考資料:

frp原作者 : fatedier

https://github.com/fatedier/frp

開機啟動和後台運行

https://github.com/fatedier/frp/issues/176

免費提供frp服務器(IOIOX):

https://www.ioiox.com/frp.html

另一免費內網穿透服務Sakura Frp

https://www.natfrp.com/