Browse Source

docs: update README.md

v1.x.x
dnomd343 2 years ago
parent
commit
453d0d29aa
  1. 44
      README.md
  2. BIN
      docs/img/network-model.png

44
README.md

@ -14,6 +14,14 @@
+ (待支持)DHCP与DHCPv6地址自动分配 + (待支持)DHCP与DHCPv6地址自动分配
## 拓扑模型
XProxy部署在内网Linux主机上,通过 `macvlan` 网络创建独立MAC地址的虚拟网关,捕获内网设备的网络流量,对其进行透明代理;宿主机一般以单臂旁路由的方式接入,虚拟网关运行时不会干扰宿主机网络,且宿主机系统的流量也可被网关代理。
![network](./docs/img/network-model.png)
XProxy运行以后,内网流量将被收集到代理内核上,目前内置了 `xray` ,`v2ray` ,`sagray` 三种内核,支持 `Shadowsocks` ,`ShadowsocksR` ,`VMess` ,`VLESS` ,`Trojan` ,`WireGuard` ,`SSH` ,`PingTunnel` 等多种代理协议,支持 `XTLS` ,`WebSocket` ,`QUIC` ,`gRPC` 等多种传输方式。同时,得益于V2ray的路由设计基础,代理的网络流量可被精确地分流,可以依据内网设备、目标地址、访问端口、连接域名、流量类型等多种方式进行路由。
## 配置格式 ## 配置格式
XProxy支持YAML与JSON格式的配置文件,包含以下部分: XProxy支持YAML与JSON格式的配置文件,包含以下部分:
@ -233,7 +241,7 @@ radvd:
## 部署流程 ## 部署流程
1. 初始配置 ### 1. 初始配置
``` ```
# 开启网卡混杂模式 # 开启网卡混杂模式
@ -252,10 +260,10 @@ shell> docker network create -d macvlan \
--gateway=192.168.2.1 \ --gateway=192.168.2.1 \
--subnet=fc00::/64 \ --subnet=fc00::/64 \
--gateway=fc00::1 \ --gateway=fc00::1 \
--ipv6 -o parent=eth0 macvlan --ipv6 -o parent=eth0 macvlan # 此处指定eth0网卡,需按实际调整
``` ```
2. 开始部署 ### 2. 开始部署
> 本项目基于Docker构建,在 [Docker Hub](https://hub.docker.com/repository/docker/dnomd343/xproxy) 或 [Github Package](https://github.com/dnomd343/XProxy/pkgs/container/xproxy) 可以查看已构建的各版本镜像。 > 本项目基于Docker构建,在 [Docker Hub](https://hub.docker.com/repository/docker/dnomd343/xproxy) 或 [Github Package](https://github.com/dnomd343/XProxy/pkgs/container/xproxy) 可以查看已构建的各版本镜像。
@ -318,7 +326,7 @@ shell> docker run --restart always \
+ 若启用RADVD功能,其日志将保存到 `radvd.log` 中; + 若启用RADVD功能,其日志将保存到 `radvd.log` 中;
3. 调整配置文件 ### 3. 调整配置文件
容器首次初始化时将生成默认配置文件 `xproxy.yml` ,其内容如下: 容器首次初始化时将生成默认配置文件 `xproxy.yml` ,其内容如下:
@ -355,11 +363,16 @@ shell> docker restart xproxy
shell> docker logs -f xproxy shell> docker logs -f xproxy
``` ```
4. 宿主机访问虚拟网关 ### 4. 宿主机访问虚拟网关
> 这一步旨在让宿主机能够使用虚拟网关,若无此需求可以跳过
由于macvlan方式的限制,宿主机上开启macvlan的网卡无法直接与虚拟网关通讯,需要另外配置网桥才可连接,
受限于macvlan机制,宿主机无法直接与macvlan容器通讯,需要配置网桥才能让宿主机访问虚拟网关。 > 以下为配置基于Debian发行版,RH系或Arch系等的配置略有不同
``` ```
# 编辑网卡配置文件
shell> vim /etc/network/interfaces shell> vim /etc/network/interfaces
``` ```
@ -377,19 +390,18 @@ iface macvlan inet static
gateway 192.168.2.2 # 虚拟网关IP地址 gateway 192.168.2.2 # 虚拟网关IP地址
dns-nameservers 192.168.2.3 # DNS主服务器 dns-nameservers 192.168.2.3 # DNS主服务器
dns-nameservers 192.168.2.1 # DNS备用服务器 dns-nameservers 192.168.2.1 # DNS备用服务器
pre-up ip link add macvlan link eth0 type macvlan mode bridge pre-up ip link add macvlan link eth0 type macvlan mode bridge # 宿主机网卡上创建网桥
post-down ip link del macvlan link eth0 type macvlan mode bridge post-down ip link del macvlan link eth0 type macvlan mode bridge # 退出时删除网桥
# 搭建网桥macvlan,用于与虚拟网关通讯
``` ```
重启宿主机网络生效(或直接重启宿主机) 重启宿主机网络生效,或直接重启宿主机系统:
``` ```
shell> /etc/init.d/networking restart shell> /etc/init.d/networking restart
[ ok ] Restarting networking (via systemctl): networking.service. [ ok ] Restarting networking (via systemctl): networking.service.
``` ```
5. 局域网设备访问 ### 5. 局域网设备访问
配置完成后,容器IP为虚拟旁路由网关地址,设备网关设置为该地址即可正常上网。 配置完成后,容器IP为虚拟旁路由网关地址,设备网关设置为该地址即可正常上网。
@ -406,3 +418,13 @@ shell> /etc/init.d/networking restart
+ 在IPv6上,修改设备地址至容器指定子网内,网关地址配置为容器IPv6地址(非链路本地地址) + 在IPv6上,修改设备地址至容器指定子网内,网关地址配置为容器IPv6地址(非链路本地地址)
综上,开启虚拟网关前需关闭路由器IPv6地址分配,而后连入设备将自动适配IPv4与IPv6网络(绝大多数设备均以DHCP与IPv6路由器发现机制联网),对于此前在内网固定IP地址的设备,手动为其配置网关地址即可。 综上,开启虚拟网关前需关闭路由器IPv6地址分配,而后连入设备将自动适配IPv4与IPv6网络(绝大多数设备均以DHCP与IPv6路由器发现机制联网),对于此前在内网固定IP地址的设备,手动为其配置网关地址即可。
## 演示实例
实例1. 利用校园网53端口漏洞,使用XProxy搭建免费网络
实例2. 家庭网络IPv4与IPv6的透明代理
## 开发相关
## 许可证

BIN
docs/img/network-model.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Loading…
Cancel
Save