前言
有的運營商(比如移動)不給公網IP,但我們又需要公網IP(遠程訪問家裡的NAS,遠程控制家裡的電腦等)怎麼辦,自己搭建一臺內網穿透服務器。
本教程需要一臺有公網IP的服務器,租服務器可以看看我這篇文章:便宜的VPS/雲服務器推薦
本篇教程講兩種內網穿透工具的搭建和使用
Proxyer(推薦)
Proxyer
目前僅支持TCP
協議、雖然看起來功能比較簡單,但基本可以滿足日常使用了,特別是在安裝和使用方面,對於新手是比較友好的。
這個不需要被端口映射的設備安裝客戶端,只需要局域網內一臺設備安裝客戶端就可以映射局域網內所有設備的端口。
截圖
服務端
Github地址:https://github.com/khvysofq/proxyer
1、安裝Docker
#CentOS 6
rpm -iUvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum update -y
yum -y install docker-io
service docker start
chkconfig docker on
#CentOS 7、Debian、Ubuntu
curl -sSL https://get.docker.com/ | sh
systemctl start docker
systemctl enable docker
2、安裝Docker Compose
curl -L "https://get.daocloud.io/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
3、安裝Proxyer
wget https://raw.githubusercontent.com/khvysofq/proxyer/master/docker-compose.yml
#請將後面1.1.1.1改成你的服務器ip地址後再運行
export PROXYER_PUBLIC_HOST=1.1.1.1
docker-compose up -d
安裝完成後,就可以通過ip:6789
訪問服務端WEB
管理面板了,進去後需要設置一個客戶端認證密碼。
然後CentOS
系統建議關閉防火牆使用,或者打開部分端口也行,關閉命令:
#CentOS 6系統
service iptables stop
chkconfig iptables off
#CentOS 7系統
systemctl stop firewalld
systemctl disable firewalld
像阿里雲等服務器,還需要去安全組那裡開放下端口。
安裝完成之後,就可以使用瀏覽器訪問6789端口(http://{你的公網IP地址或者域名}:6789/
)來使用了。
客戶端
進入服務端面板後,界面會提供Linux
、Windows
、macOS
客戶端版本,然後自行根據自身系統下載指定版本的壓縮包即可。
Windows
可以直接下載界面版本,然後雙擊可執行文件,會彈出一個網頁界面,輸入上面的認證密碼,即可開始配置穿透。
Linux
下載壓縮包後,解壓出二進制文件,直接在當前目錄使用./proxyer
命令運行即可。
FrpMgr
什麼是FRP
FRP 是一個免費開源的用於內網穿透的反向代理應用,它支持 TCP、UDP 協議, 也為 http 和 https 協議提供了額外的支持。你可以粗略理解它是一箇中轉站,幫你實現 公網 ←→ FRP(服務器) ←→ 家庭內網
的連接,讓內網裡的設備也可以被公網訪問到。
而目前 FRP 還推出了“點對點穿透”的試驗性功能,連接成功後可以讓公網設備直接跟內網設備“點對點”傳輸,數據流不再經過 VPS 中轉,這樣可以不受服務器帶寬的限制,傳輸大文件會更快更穩定。當然,此功能並不能保證在你的網絡環境 100% 可用,而且還要求訪問端也得運行 FRP 客戶端 (因此目前手機是無法實現的,只有電腦可以)。由於實現條件較多,所以有文件傳輸需求的朋友還是建議買帶寬稍大一點的 VPS 會比較省心。
說明:FrpMgr
是一個基於Frp
的快速配置Web
面板,可以一鍵配置生成客戶端的Frp
配置文件,遠程安裝Frp
服務到任意一臺服務器,讓我們在使用配置Frp
上方便很多。
截圖
安裝
Github地址:https://github.com/Zo3i/frpMgr
說明:由於該面板使用的JAVA
、Mysql 5.7
,所以512M
的內存大部分是跑不起來的,如果內存太小,先加一點虛擬內存。
腳本安裝
wget -O - https://raw.githubusercontent.com/Zo3i/OCS/master/docker/docker-all2.sh | sh
wget -O - https://raw.githubusercontent.com/Zo3i/frpMgr/master/web/src/main/docker/final/run.sh | sh
#注:代碼僅在Centos7,Debian9系統上通過測試
面板訪問地址:ip:8999/frp
,賬號admin
,密碼12345678
,登錄成功後在面板修改密碼即可。
查看日誌命令:1. docker ps 2. docker logs -f --tail 10 java項目的容器ID
手動安裝
1、安裝Docker
#CentOS 6
rpm -iUvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum update -y
yum -y install docker-io
service docker start
chkconfig docker on
#CentOS 7、Debian、Ubuntu
curl -sSL https://get.docker.com/ | sh
systemctl start docker
systemctl enable docker
2、安裝Docker Compose
curl -L https://github.com/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
3、安裝git
#Debian/Ubuntu系統
apt -y install git
#CentOS系統
yum -y install git
4、安裝FrpMgr
#拉取源碼
git clone https://github.com/Zo3i/frpMgr.git
#構建Mysql鏡像
cd frpMgr/web/src/main/docker/final/mysql
docker build -t jo/mysql .
#構建frp並啟動鏡像
cd ..
chmod +x w.sh
docker-compose up -d
面板訪問地址:ip:8999/frp
,賬號admin
,密碼12345678
,登錄成功後在面板修改密碼即可。
查看日誌命令:1. docker ps 2. docker logs -f --tail 10 java項目的容器ID
使用
提示:這裡安裝面板的服務器是沒有給你安裝Frp的,你可以在下面服務器配置的時候,填上ip,就可以安裝frp了。
1、首先去域名服務商解析一個泛域名(如*.zeruns.tech
或*.frp.zeruns.tech
))到服務器ip
。
2、點擊左側FRP
服務器配置,域名只需要填主域名,這裡默認的服務器端口為22
。
填好後,點擊遠程安裝,輸入服務器密碼即可,服務器端系統目前支持CentOS 7
、Debian 8+
、Ubuntu 16+
,且注意防火牆需要打開Web
端口。
3、點擊左側FRP
客戶端配置,填上二級域名(比如zeruns
、後面就不要了),本地端口就可以了。
最後點擊右側,下載Win
或者Mac
配置壓縮包即可,Win
的話解壓出來打開open.bat
即可,連接地址為二級域名:Web端口
。
由於沒有Win
客戶端開機自啟,這裡博主就額外說下Windows
開機自啟步驟。
1、新建一個vbs後綴的腳本,比如rats.vbs,腳本代碼如下:
set ws=WScript.CreateObject("WScript.Shell")
ws.Run "C:\Users\Desktop\frp\frpc.exe -c C:\Users\Desktop\frp\frpc.ini",0
第二行為frp文件夾路徑,不直接具體路徑的,打開frp文件夾,左上角就是路徑,複製即可
2、使用Win+R、輸入shell:startup確認運行,將腳本放進彈出來的文件夾裡面即可。
部分內容轉自:https://www.moerats.com/