端口映射,反向代理

v1.0.16
版本
2023-12-13
版本更新時間
22
安裝
8
star
端口映射
項目介紹
本項目主要用來代理http服務(wù),提供端口映射服務(wù),可以作為網(wǎng)關(guān)使用。
比如可以將很多域名解析到本服務(wù)器,然后由本服務(wù)器代理到其他任意服務(wù)器。
比如一臺連接了公網(wǎng)的服務(wù)器,然后很多臺內(nèi)網(wǎng)服務(wù)器,那么可以使用公網(wǎng)服務(wù)器轉(zhuǎn)發(fā)請求的到內(nèi)網(wǎng)服務(wù)器。
本項目也可以代理公網(wǎng)ip,將需要代理的服務(wù)ip地址換成公網(wǎng)ip即可。
當然本項目也可以用作類似于nginx的負載均衡的功能,不過需要調(diào)整服務(wù)端和客戶端以及配置文件。
原理就是給每一個被代理的服務(wù)器設(shè)置權(quán)重,當瀏覽器訪問這個代理服務(wù)器的某個端口的時候,服務(wù)端根據(jù)權(quán)重給對應(yīng)的客戶端轉(zhuǎn)發(fā)http請求。
如果需要集成到webman或者laravel,thinkPHP等項目,可以將本項目放在業(yè)務(wù)項目的子目錄下,根據(jù)需求開啟進程。
項目安裝
composer create-project xiaosongshu/port-mapping
項目結(jié)構(gòu)
|--config
|-config.php # 配置文件
|--temp_client_for_win # windows環(huán)境 channel客戶端運行目錄
|-tpl.php # windows環(huán)境 channel客戶端模板文件
|--vendor # 擴展文件
|-...
|--windows_server # windows環(huán)境 服務(wù)端運行目錄
|-...
- channel.php # windows環(huán)境channel服務(wù)端文件
- client.php # linux環(huán)境channel客戶端文件
- client_for_win.bat # windows環(huán)境啟動文件
- client_for_win.php # windows環(huán)境 channel客戶端生成器
- common.php # 公共函數(shù)
- composer.json # 項目依賴配置文件
- composer.lock # 項目依賴配置文件版本鎖定文件
- server.php # linux環(huán)境服務(wù)端啟動文件
- server_for_win.php # windows環(huán)境服務(wù)端模板文件
- start_win_server.php # windows環(huán)境服務(wù)端啟動模板文件
配置
見config/config.php 。
<?php
return [
/** 代理ip 本服務(wù)器ip地址 */
"server_ip" => "127.0.0.1",
/** 代理端口 本服務(wù)器暴露的端口 nat_list為空生效 */
"server_port" => 8001,
/** 映射ip 被代理的服務(wù)器的ip地址 nat_list為空生效 */
"local_ip" => "127.0.0.1",
/** 映射端口 被代理的服務(wù)器的端口 nat_list為空生效*/
"local_port" => 9501,
/** channel 通道端口 */
"channel_port" => 2206,
/** 端口映射表 */
"nat_list" => [
[
/** 訪問端口 */
"server_port" => 8000,
/** 映射端口 */
"local_port" => 9501,
/** 映射IP */
"local_ip" => "127.0.0.1",
],
[
/** 訪問端口 */
"server_port" => 8400,
/** 映射端口 */
"local_port" => 80,
/** 映射IP */
"local_ip" => "156.236.71.182",
],
]
];
啟動
linux環(huán)境
啟動服務(wù)端
php server.php start (-d)
啟動客戶端
php client.php start (-d)
windows環(huán)境
直接雙擊client_for_win.bat文件即可,
關(guān)閉服務(wù)
在窗口按ctrl+c 可以關(guān)閉服務(wù)。
聯(lián)系作者
2723659854@qq.com