內(nèi)網(wǎng)穿透
《微信本地調(diào)試》一文中狰住,小編提到了使用ngrok、natapp和花生殼進(jìn)行內(nèi)網(wǎng)穿透丸冕。但是,想要使用自定義域名挨约,都是要收費(fèi)的。
本文中产雹,我們要搭建一個(gè)免費(fèi)的內(nèi)網(wǎng)穿透服務(wù)器诫惭。內(nèi)網(wǎng)穿透服務(wù)器,可選的軟件有l(wèi)anproxy蔓挖、frp夕土、n2n等等,今天我們選擇的是lanproxy瘟判。
原文地址:http://www.voidking.com/dev-lanproxy/
準(zhǔn)備
1怨绣、一臺(tái)公網(wǎng)服務(wù)器(運(yùn)行proxy-server)。
2拷获、一臺(tái)內(nèi)網(wǎng)pc或服務(wù)器(運(yùn)行proxy-client)篮撑。
服務(wù)端配置
安裝java
1、刪除自帶jdk
rpm -e --nodeps `rpm -qa | grep java`
2匆瓜、查看yum庫(kù)中有哪些jdk版本赢笨。
yum search java | grep jdk
3邪财、選擇java-1.8.0-openjdk-devel.x86_64 : OpenJDK Development Environment版本進(jìn)行安裝。
yum install java-1.8.0-openjdk-devel.x86_64
默認(rèn)安裝目錄為/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.141-1.b16.el7_3.x86_64
质欲。
4、配置環(huán)境變量
vim /etc/profile
在最后添加:
#set java environment
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.141-1.b16.el7_3.x86_64
JRE_HOME=$JAVA_HOME/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH
5糠馆、讓修改立即生效
source /etc/profile
6嘶伟、查看安裝結(jié)果
java
,javac
又碌,java -version
安裝lanproxy
1九昧、訪問lanproxy下載地址,下載proxy-server-0.1.zip毕匀,上傳到公網(wǎng)服務(wù)器铸鹰。
或者,直接在服務(wù)器上下載
wget https://github.com/ffay/lanproxy/files/1274739/proxy-server-0.1.zip
curl -C - -O -L https://github.com/ffay/lanproxy/files/1274739/proxy-server-0.1.zip
2皂岔、解壓安裝
unzip proxy-server-0.1.zip
mv proxy-server-0.1 /usr/local/
3蹋笼、修改配置文件
vim /usr/local/proxy-server-0.1/conf/config.properties
修改管理員的用戶名和密碼。
4躁垛、啟動(dòng)服務(wù)
cd /usr/local/proxy-server-0.1/bin
chmod +x startup.sh
./startup.sh
5剖毯、訪問 http://host_ip:8090 ,即可看到登錄界面教馆。
nginx反向代理
1逊谋、添加域名解析local
到公網(wǎng)ip。
2土铺、在nginx虛擬主機(jī)配置目錄中胶滋,添加local.voidking.com.conf,內(nèi)容如下:
server {
listen 80;
server_name local.voidking.com;
charset utf-8;
location /{
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 1024m;
client_body_buffer_size 128k;
client_body_temp_path data/client_body_temp;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
proxy_temp_path data/proxy_temp;
proxy_pass http://127.0.0.1:8090;
}
}
3悲敷、測(cè)試nginx
./nginx -t
究恤,也許會(huì)提示缺少目錄,那么新建目錄后德。
mkdir -p /usr/local/nginx/data/client_body_temp
mkdir -p /usr/local/nginx/data/proxy_temp
4丁溅、重啟nginx
./nginx -s reload
5、訪問 http://local.voidking.com/ 探遵,即可看到登錄界面窟赏。
使用
服務(wù)端配置
1、登錄lanproxy箱季,添加客戶端涯穷,輸入客戶端備注名稱,生成隨機(jī)密鑰藏雏,提交添加拷况。
2作煌、客戶端列表中,配置管理中赚瘦,都會(huì)出現(xiàn)新添加的客戶端粟誓。
3、單擊配置管理中的客戶端起意,添加配置(每個(gè)客戶端可以添加多個(gè)配置)鹰服。
- 代理名稱,推薦輸入客戶端要代理出去的端口揽咕,或者是客戶端想要發(fā)布到公網(wǎng)的項(xiàng)目名稱悲酷。
- 公網(wǎng)端口,填入一個(gè)服務(wù)器空閑端口亲善,用來轉(zhuǎn)發(fā)請(qǐng)求給客戶端设易。
- 代理IP端口,填入客戶端端口蛹头,公網(wǎng)會(huì)轉(zhuǎn)發(fā)請(qǐng)求給該客戶端端口顿肺。
客戶端配置
1、訪問lanproxy下載地址渣蜗,下載proxy-client-0.1.zip挟冠,解壓到喜歡的目錄。
2袍睡、進(jìn)入proxy-client-0.1/conf目錄知染,修改config.properties為:
#與在proxy-server配置后臺(tái)創(chuàng)建客戶端時(shí)填寫的秘鑰保持一致;沒有服務(wù)器可以登錄 https://lanproxy.org/ 創(chuàng)建客戶端獲取秘鑰
client.key=7533f855416741d88732954991668715
ssl.enable=true
ssl.jksPath=test.jks
ssl.keyStorePassword=123456
#這里填寫實(shí)際的proxy-server地址斑胜;沒有服務(wù)器默認(rèn)即可控淡,自己有服務(wù)器的更換為自己的proxy-server(IP)地址
server.host=local.voidking.com
#proxy-server ssl默認(rèn)端口4993,默認(rèn)普通端口4900
#ssl.enable=true時(shí)這里填寫ssl端口止潘,ssl.enable=false時(shí)這里填寫普通端口
server.port=4993
3掺炭、進(jìn)入proxy-client-0.1/bin目錄,雙擊startup.bat凭戴,即可啟動(dòng)lanproxy客戶端涧狮。
如果啟動(dòng)失敗,一般是因?yàn)閖dk沒有安裝配置成功么夫,參考《IDEA的常用配置》中的安裝jdk者冤,安裝配置jdk后再次啟動(dòng)即可。
4档痪、訪問地址 http://local.voidking.com:50000/ 涉枫,即可看到本地訪問客戶端80端口相同的頁面。
至此腐螟,代理成功愿汰!
進(jìn)階配置
一個(gè)端口一個(gè)項(xiàng)目
假設(shè)困后,我們本地的4000端口開啟了node服務(wù)。那么衬廷,怎么把這個(gè)服務(wù)優(yōu)雅地提供給整個(gè)互聯(lián)網(wǎng)摇予?
1、服務(wù)端添加配置
2吗跋、啟動(dòng)本地node服務(wù)
3侧戴、已經(jīng)啟動(dòng)lanproxy客戶端,訪問 http://local.voidking.com:50001/
此時(shí)小腊,整個(gè)互聯(lián)網(wǎng)都能訪問到這個(gè)node項(xiàng)目,但是久窟,帶著端口號(hào)很不友好秩冈。那么,我們就給這個(gè)項(xiàng)目添加一個(gè)單獨(dú)的域名斥扛。
1入问、添加域名解析node.local
到公網(wǎng)ip。
2稀颁、在nginx虛擬主機(jī)配置目錄中芬失,添加node.local.voidking.com.conf,內(nèi)容如下:
server {
listen 80;
server_name node.local.voidking.com;
charset utf-8;
location /{
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 1024m;
client_body_buffer_size 128k;
client_body_temp_path data/client_body_temp;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
proxy_temp_path data/proxy_temp;
proxy_pass http://127.0.0.1:50001;
}
}
3匾灶、重啟nginx
./nginx -s reload
4棱烂、訪問地址 http://node.local.voidking.com/ ,即可看到本地node服務(wù)阶女。
一個(gè)端口多個(gè)項(xiàng)目
1颊糜、通過我們開放出的80端口,可以訪問web根目錄下的很多項(xiàng)目秃踩,比如在其他文章中提到過的basic項(xiàng)目和vkphp項(xiàng)目衬鱼,下文以vkphp項(xiàng)目為例。
2憔杨、當(dāng)前鸟赫,vkphp項(xiàng)目首頁是簡(jiǎn)單的文字顯示。
3消别、通過外網(wǎng)訪問的地址為 http://local.voidking.com:50000/vkphp
此時(shí)抛蚤,整個(gè)互聯(lián)網(wǎng)都能訪問到這個(gè)vkphp項(xiàng)目,但是寻狂,帶著端口號(hào)和項(xiàng)目名霉颠,感覺像是個(gè)欺詐網(wǎng)站。那么荆虱,我們能否給這個(gè)項(xiàng)目添加一個(gè)單獨(dú)的域名呢蒿偎?當(dāng)然也是可以的朽们。
1、添加域名解析vkphp.local
到公網(wǎng)ip诉位。
2骑脱、在nginx虛擬主機(jī)配置目錄中,添加vkphp.local.voidking.com.conf苍糠,內(nèi)容如下:
server {
listen 80;
server_name vkphp.local.voidking.com;
charset utf-8;
location /{
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 1024m;
client_body_buffer_size 128k;
client_body_temp_path data/client_body_temp;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
proxy_temp_path data/proxy_temp;
proxy_pass http://127.0.0.1:50000;
}
}
3叁丧、重啟nginx
./nginx -s reload
4、打開本地apache的http-vhosts.conf岳瞭,添加配置:
<VirtualHost *:80> #laragon magic!
DocumentRoot "C:/laragon/www/vkphp/"
ServerName vkphp.local.voidking.com
ServerAlias vkphp.local.voidking.com
</VirtualHost>
5拥娄、重啟本地apache
6、訪問地址 http://vkphp.local.voidking.com/ 瞳筏,即可看到本地vkphp項(xiàng)目稚瘾。
有趣的是,訪問時(shí)該地址會(huì)自動(dòng)在后面加上vkphp
姚炕,成為 http://vkphp.local.voidking.com/vkphp/
結(jié)語
由上配置我們發(fā)現(xiàn)摊欠,nginx的反向代理非常好用。稍微調(diào)整柱宦,便可以適應(yīng)大多數(shù)項(xiàng)目些椒,實(shí)在是美化url的神器,哇咔咔掸刊。
書簽
業(yè)余草推薦一款局域網(wǎng)(內(nèi)網(wǎng))穿透工具lanproxy
使用frp實(shí)現(xiàn)內(nèi)網(wǎng)穿透