入坑IMTNAS星際魔盒2 - MCS7配置免費內網穿透frp
簡言: |
在IPV4地址短缺的情況之下,不是每個家庭都分配到公網的IPV4地址。如要訪問家中的設備就變得不方便,坊間有五花八門方法可以實現訪問家中設備,如TeamViewer、 Zero-Tier、 花生殼 等等, 但因為每地區的網絡環境不同,體驗也不一樣。 這裡我推薦frp實現家中設備在內網穿透到網外。
為什麼是frp: |
frp 是一個高性能的反向代理應用,可以幫助您輕鬆地進行內網穿透,對外網提供服務,支持 tcp, http, https 等協議類型,並且 web 服務支持根據域名進行路由轉發。
配置前準備: |
申請域名1個, 無論是付費還是免費的 |
(如果沒有, 可以購買一個也很便宜)
以CloudFlare設定為例: |
我的域名是: kingsir.ga想新增一個別名稱為imtnas給魔盒做訪問
選取: DNS
記錄類型為: CNAME
名稱: imtnas
目標: free.frp.ioiox.com
目標: free.frp.ioiox.com 是免費的frp服務器
等片刻,PING一下,兩個地址是否一樣.
安裝frpc(即frpc客戶端): |
首先SSH登陸星際魔盒及獲得root權限
用戶名: admin
密碼: admin
sudo -i
下載及安裝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
創建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
現在可以透過域名地址瀏覽導航頁面 |
添加開機啟動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 中內容如新增穿透設備, 更新域名等
打開瀏覽器通過 http://魔盒IP:7400
訪問 dashboard 界面。
舉個例子:
我想新增FileBrowser服務到網外訪問
以CloudFlare設定為例:
我的域名是: kingsir.ga
想新增一個名稱為files的別名 訪問FileBrowser服務
選取: DNS
記錄類型為: CNAME
名稱: files
目標: free.frp.ioiox.com
目標: free.frp.ioiox.com 是免費的frp服務器
打開瀏覽器通過 http://魔盒IP:7400
訪問 dashboard 界面。
應用 | IP地址 | 端口 | 子目錄 |
---|---|---|---|
Frp(Dashboard) | 魔盒IP | 7400 |
加入這段內容:
[filebrowser]
type = http
local_ip = 10.10.1.51
local_port = 8080
custom_domains = files.kingsir.ga
通過瀏覽器 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