From 2f5f05aaa67cabd661718c83b30e11e83d9758b1 Mon Sep 17 00:00:00 2001 From: shanhy Date: Thu, 22 Dec 2022 13:57:35 +0800 Subject: [PATCH 01/21] =?UTF-8?q?=E5=AE=B9=E5=99=A8=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E6=8F=90=E4=BE=9B=E9=80=8F=E6=98=8E=E4=BB=A3=E7=90=86iptables?= =?UTF-8?q?=E7=8E=AF=E5=A2=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 8 ++++++-- entrypoint.sh | 5 +++++ rules.v4 | 33 +++++++++++++++++++++++++++++++++ v4-forward.conf | 2 ++ 4 files changed, 46 insertions(+), 2 deletions(-) create mode 100644 entrypoint.sh create mode 100644 rules.v4 create mode 100644 v4-forward.conf diff --git a/Dockerfile b/Dockerfile index c940fcd..9f533fa 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,11 +5,15 @@ WORKDIR /root ARG TARGETPLATFORM ARG TAG COPY v2ray.sh /root/v2ray.sh +COPY v4-forward.conf /etc/sysctl.d/v4-forward.conf +COPY rules.v4 /etc/iptables/rules.v4 +COPY entrypoint.sh /opt/entrypoint.sh RUN set -ex \ - && apk add --no-cache tzdata openssl ca-certificates \ + && apk add --no-cache tzdata openssl ca-certificates iptables \ && mkdir -p /etc/v2ray /usr/local/share/v2ray /var/log/v2ray \ && chmod +x /root/v2ray.sh \ + && chmod +x /opt/entrypoint.sh \ && /root/v2ray.sh "${TARGETPLATFORM}" "${TAG}" -ENTRYPOINT ["/usr/bin/v2ray"] \ No newline at end of file +ENTRYPOINT ["/opt/entrypoint.sh"] \ No newline at end of file diff --git a/entrypoint.sh b/entrypoint.sh new file mode 100644 index 0000000..1f01e9f --- /dev/null +++ b/entrypoint.sh @@ -0,0 +1,5 @@ +#!/bin/sh +ip route add local default dev lo table 100 +ip rule add fwmark 1 lookup 100 +/sbin/iptables-restore /etc/iptables/rules.v4 +/usr/bin/v2ray $@ diff --git a/rules.v4 b/rules.v4 new file mode 100644 index 0000000..0364d77 --- /dev/null +++ b/rules.v4 @@ -0,0 +1,33 @@ +# Generated by iptables-save v1.8.8 on Wed Dec 21 04:30:23 2022 +*mangle +:PREROUTING ACCEPT [0:0] +:INPUT ACCEPT [0:0] +:FORWARD ACCEPT [0:0] +:OUTPUT ACCEPT [0:0] +:POSTROUTING ACCEPT [0:0] +:DIVERT - [0:0] +:V2RAY - [0:0] +:V2RAY_MASK - [0:0] +-A PREROUTING -p tcp -m socket -j DIVERT +-A PREROUTING -j V2RAY +-A OUTPUT -j V2RAY_MASK +-A DIVERT -j MARK --set-xmark 0x1/0xffffffff +-A DIVERT -j ACCEPT +-A V2RAY -d 127.0.0.1/32 -j RETURN +-A V2RAY -d 224.0.0.0/4 -j RETURN +-A V2RAY -d 255.255.255.255/32 -j RETURN +-A V2RAY -d 192.168.0.0/16 -p tcp -j RETURN +-A V2RAY -d 192.168.0.0/16 -p udp -m udp ! --dport 53 -j RETURN +-A V2RAY -m mark --mark 0xff -j RETURN +-A V2RAY -p udp -j TPROXY --on-port 12345 --on-ip 127.0.0.1 --tproxy-mark 0x1/0xffffffff +-A V2RAY -p tcp -j TPROXY --on-port 12345 --on-ip 127.0.0.1 --tproxy-mark 0x1/0xffffffff +-A V2RAY_MASK -d 224.0.0.0/4 -j RETURN +-A V2RAY_MASK -d 255.255.255.255/32 -j RETURN +-A V2RAY_MASK -d 192.168.0.0/16 -p tcp -j RETURN +-A V2RAY_MASK -d 192.168.0.0/16 -p udp -m udp ! --dport 53 -j RETURN +-A V2RAY_MASK -m mark --mark 0xff -j RETURN +-A V2RAY_MASK -p udp -j MARK --set-xmark 0x1/0xffffffff +-A V2RAY_MASK -p tcp -j MARK --set-xmark 0x1/0xffffffff +COMMIT +# Completed on Wed Dec 21 04:30:23 2022 + diff --git a/v4-forward.conf b/v4-forward.conf new file mode 100644 index 0000000..250ee89 --- /dev/null +++ b/v4-forward.conf @@ -0,0 +1,2 @@ +net.ipv4.ip_forward=1 + From 28a1c70453a944fc229e79de9476a214f1229f9a Mon Sep 17 00:00:00 2001 From: shanhy Date: Thu, 22 Dec 2022 14:15:14 +0800 Subject: [PATCH 02/21] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 07f8d6c..8a5853b 100644 --- a/README.md +++ b/README.md @@ -12,4 +12,12 @@ docker run --rm v2fly/v2fly-core help docker run --name v2ray v2fly/v2fly-core $v2ray_args (help, eun etc...) docker run -d --name v2ray -v /path/to/config.json:/etc/v2fly/config.json -p 10086:10086 v2fly/v2fly-core run -c /etc/v2fly/config.json -``` \ No newline at end of file +``` + +## 使用TPROXY透明代理的额外说明 + +- 需要添加容器启动参数 `--privileged` 使用特权模式启动 +- 使用容器macvlan功能,为容器分配一个独占的主网络IP地址 +- macvlan默认不支持dns,启动容器时挂载宿主机 `-v /etc/resolv.conf:/etc/resolv.conf` 文件保证容器内域名可以正常解析 +- 为宿主机的主网卡开启混杂模式 +- 如果容器以host网络方式启动,则不需要以上几步操作,直接就可以用(不推荐host方式,还是推荐容器完全隔离模式启动) From aaa03f912696a0a8bca442dddf87b58b8bf42a26 Mon Sep 17 00:00:00 2001 From: shanhy Date: Thu, 22 Dec 2022 14:37:08 +0800 Subject: [PATCH 03/21] update style --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 8a5853b..89c7ad4 100644 --- a/README.md +++ b/README.md @@ -16,8 +16,8 @@ docker run -d --name v2ray -v /path/to/config.json:/etc/v2fly/config.json -p 100 ## 使用TPROXY透明代理的额外说明 -- 需要添加容器启动参数 `--privileged` 使用特权模式启动 -- 使用容器macvlan功能,为容器分配一个独占的主网络IP地址 -- macvlan默认不支持dns,启动容器时挂载宿主机 `-v /etc/resolv.conf:/etc/resolv.conf` 文件保证容器内域名可以正常解析 -- 为宿主机的主网卡开启混杂模式 -- 如果容器以host网络方式启动,则不需要以上几步操作,直接就可以用(不推荐host方式,还是推荐容器完全隔离模式启动) + - 需要添加容器启动参数 `--privileged` 使用特权模式启动 + - 使用容器macvlan功能,为容器分配一个独占的主网络IP地址 + - macvlan默认不支持dns,启动容器时挂载宿主机 `-v /etc/resolv.conf:/etc/resolv.conf` 文件保证容器内域名可以正常解析 + - 为宿主机的主网卡开启混杂模式 + - 如果容器以host网络方式启动,则不需要以上几步操作,直接就可以用(不推荐host方式,还是推荐容器完全隔离模式启动) From 734448c1612732004dcc976bb4652872c0baef94 Mon Sep 17 00:00:00 2001 From: shanhy Date: Thu, 22 Dec 2022 15:45:10 +0800 Subject: [PATCH 04/21] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 89c7ad4..eae35b1 100644 --- a/README.md +++ b/README.md @@ -16,8 +16,8 @@ docker run -d --name v2ray -v /path/to/config.json:/etc/v2fly/config.json -p 100 ## 使用TPROXY透明代理的额外说明 - - 需要添加容器启动参数 `--privileged` 使用特权模式启动 - - 使用容器macvlan功能,为容器分配一个独占的主网络IP地址 - - macvlan默认不支持dns,启动容器时挂载宿主机 `-v /etc/resolv.conf:/etc/resolv.conf` 文件保证容器内域名可以正常解析 - - 为宿主机的主网卡开启混杂模式 - - 如果容器以host网络方式启动,则不需要以上几步操作,直接就可以用(不推荐host方式,还是推荐容器完全隔离模式启动) +- 需要添加容器启动参数 `--privileged` 使用特权模式启动 +- 使用容器macvlan功能,为容器分配一个独占的主网络IP地址 +- macvlan默认不支持dns,启动容器时挂载宿主机 `-v /etc/resolv.conf:/etc/resolv.conf` 文件保证容器内域名可以正常解析 +- 为宿主机的主网卡开启混杂模式 +- 如果容器以host网络方式启动,则不需要以上几步操作,直接就可以用(不推荐host方式,还是推荐容器完全隔离模式启动) From ab5aefb722a043d59bcd6582f912762e3e395e5e Mon Sep 17 00:00:00 2001 From: shanhy Date: Thu, 22 Dec 2022 15:46:12 +0800 Subject: [PATCH 05/21] =?UTF-8?q?2=E4=B8=AA=E7=A9=BA=E6=A0=BC=E6=A0=B7?= =?UTF-8?q?=E5=BC=8Ffix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index eae35b1..8c7e33e 100644 --- a/README.md +++ b/README.md @@ -16,8 +16,8 @@ docker run -d --name v2ray -v /path/to/config.json:/etc/v2fly/config.json -p 100 ## 使用TPROXY透明代理的额外说明 -- 需要添加容器启动参数 `--privileged` 使用特权模式启动 -- 使用容器macvlan功能,为容器分配一个独占的主网络IP地址 -- macvlan默认不支持dns,启动容器时挂载宿主机 `-v /etc/resolv.conf:/etc/resolv.conf` 文件保证容器内域名可以正常解析 -- 为宿主机的主网卡开启混杂模式 -- 如果容器以host网络方式启动,则不需要以上几步操作,直接就可以用(不推荐host方式,还是推荐容器完全隔离模式启动) +- 需要添加容器启动参数 `--privileged` 使用特权模式启动 +- 使用容器macvlan功能,为容器分配一个独占的主网络IP地址 +- macvlan默认不支持dns,启动容器时挂载宿主机 `-v /etc/resolv.conf:/etc/resolv.conf` 文件保证容器内域名可以正常解析 +- 为宿主机的主网卡开启混杂模式 +- 如果容器以host网络方式启动,则不需要以上几步操作,直接就可以用(不推荐host方式,还是推荐容器完全隔离模式启动) From 4a285d376e831e257937b2b5172f9c9216da00eb Mon Sep 17 00:00:00 2001 From: shanhy Date: Fri, 23 Dec 2022 13:47:14 +0800 Subject: [PATCH 06/21] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=84=9A=E6=9C=AC?= =?UTF-8?q?=E5=86=99=E6=B3=95=EF=BC=8C=E5=8A=9F=E8=83=BD=E6=B2=A1=E5=8F=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 6 +++--- README.md | 11 ++++++----- entrypoint.sh => tproxy.sh | 0 3 files changed, 9 insertions(+), 8 deletions(-) rename entrypoint.sh => tproxy.sh (100%) diff --git a/Dockerfile b/Dockerfile index 9f533fa..e00d9bc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,13 +7,13 @@ ARG TAG COPY v2ray.sh /root/v2ray.sh COPY v4-forward.conf /etc/sysctl.d/v4-forward.conf COPY rules.v4 /etc/iptables/rules.v4 -COPY entrypoint.sh /opt/entrypoint.sh +COPY tproxy.sh /usr/bin/v2ray-tproxy RUN set -ex \ && apk add --no-cache tzdata openssl ca-certificates iptables \ && mkdir -p /etc/v2ray /usr/local/share/v2ray /var/log/v2ray \ && chmod +x /root/v2ray.sh \ - && chmod +x /opt/entrypoint.sh \ + && chmod +x /usr/bin/v2ray-tproxy \ && /root/v2ray.sh "${TARGETPLATFORM}" "${TAG}" -ENTRYPOINT ["/opt/entrypoint.sh"] \ No newline at end of file +ENTRYPOINT ["/usr/bin/v2ray"] \ No newline at end of file diff --git a/README.md b/README.md index 8c7e33e..87fe25b 100644 --- a/README.md +++ b/README.md @@ -16,8 +16,9 @@ docker run -d --name v2ray -v /path/to/config.json:/etc/v2fly/config.json -p 100 ## 使用TPROXY透明代理的额外说明 -- 需要添加容器启动参数 `--privileged` 使用特权模式启动 -- 使用容器macvlan功能,为容器分配一个独占的主网络IP地址 -- macvlan默认不支持dns,启动容器时挂载宿主机 `-v /etc/resolv.conf:/etc/resolv.conf` 文件保证容器内域名可以正常解析 -- 为宿主机的主网卡开启混杂模式 -- 如果容器以host网络方式启动,则不需要以上几步操作,直接就可以用(不推荐host方式,还是推荐容器完全隔离模式启动) +- 需要添加容器启动参数 `--privileged` 使用特权模式启动 +- 使用容器macvlan功能,为容器分配一个独占的主网络IP地址 +- macvlan默认不支持dns,启动容器时挂载宿主机 `-v /etc/resolv.conf:/etc/resolv.conf` 文件保证容器内域名可以正常解析 +- 为宿主机的主网卡开启混杂模式 +- 如果容器以host网络方式启动,则不需要以上几步操作,直接就可以用(不推荐host方式,还是推荐容器完全隔离模式启动) +- 启动容器使用 `--entrypoint="/usr/bin/v2ray-tproxy"` 覆盖默认的 entrypoint diff --git a/entrypoint.sh b/tproxy.sh similarity index 100% rename from entrypoint.sh rename to tproxy.sh From bd63f2948e06dc0c50fbf7f2c43353d55b42a38a Mon Sep 17 00:00:00 2001 From: xzxiaoshan <365384722@qq.com> Date: Thu, 14 Dec 2023 22:18:46 +0800 Subject: [PATCH 07/21] Update README.md --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 293256f..28c50f7 100644 --- a/README.md +++ b/README.md @@ -19,9 +19,9 @@ docker run -d --name v2ray -v /path/to/config.json:/etc/v2ray/config.json -p 100 ## 使用TPROXY透明代理的额外说明 -- 需要添加容器启动参数 `--privileged` 使用特权模式启动 -- 使用容器macvlan功能,为容器分配一个独占的主网络IP地址 -- macvlan默认不支持dns,启动容器时挂载宿主机 `-v /etc/resolv.conf:/etc/resolv.conf` 文件保证容器内域名可以正常解析 -- 为宿主机的主网卡开启混杂模式 -- 如果容器以host网络方式启动,则不需要以上几步操作,直接就可以用(不推荐host方式,还是推荐容器完全隔离模式启动) -- 启动容器使用 `--entrypoint="/usr/bin/v2ray-tproxy"` 覆盖默认的 entrypoint + - 需要添加容器启动参数 `--privileged` 使用特权模式启动 + - 使用容器macvlan功能,为容器分配一个独占的主网络IP地址 + - macvlan默认不支持dns,启动容器时挂载宿主机 `-v /etc/resolv.conf:/etc/resolv.conf` 文件保证容器内域名可以正常解析 + - 为宿主机的主网卡开启混杂模式 + - 如果容器以host网络方式启动,则不需要以上几步操作,直接就可以用(不推荐host方式,还是推荐容器完全隔离模式启动) + - 启动容器使用 `--entrypoint="/usr/bin/v2ray-tproxy"` 覆盖默认的 entrypoint From 8189f7b488d4db8512c8750955658e0b619a43b3 Mon Sep 17 00:00:00 2001 From: xzxiaoshan <365384722@qq.com> Date: Thu, 14 Dec 2023 22:27:42 +0800 Subject: [PATCH 08/21] Update README.md --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 28c50f7..0f0a640 100644 --- a/README.md +++ b/README.md @@ -19,9 +19,9 @@ docker run -d --name v2ray -v /path/to/config.json:/etc/v2ray/config.json -p 100 ## 使用TPROXY透明代理的额外说明 - - 需要添加容器启动参数 `--privileged` 使用特权模式启动 - - 使用容器macvlan功能,为容器分配一个独占的主网络IP地址 - - macvlan默认不支持dns,启动容器时挂载宿主机 `-v /etc/resolv.conf:/etc/resolv.conf` 文件保证容器内域名可以正常解析 - - 为宿主机的主网卡开启混杂模式 - - 如果容器以host网络方式启动,则不需要以上几步操作,直接就可以用(不推荐host方式,还是推荐容器完全隔离模式启动) - - 启动容器使用 `--entrypoint="/usr/bin/v2ray-tproxy"` 覆盖默认的 entrypoint +- 需要添加容器启动参数 `--privileged` 使用特权模式启动 +- 使用容器macvlan功能,为容器分配一个独占的主网络IP地址 +- macvlan默认不支持dns,启动容器时挂载宿主机 `-v /etc/resolv.conf:/etc/resolv.conf` 文件保证容器内域名可以正常解析 +- 为宿主机的主网卡开启混杂模式 +- 如果容器以host网络方式启动,则不需要以上几步操作,直接就可以用(不推荐host方式,还是推荐容器完全隔离模式启动) +- 启动容器使用 `--entrypoint="/usr/bin/v2ray-tproxy"` 覆盖默认的 entrypoint From 9d91376ed806ecd58396a508a120593e79729a34 Mon Sep 17 00:00:00 2001 From: xzxiaoshan <365384722@qq.com> Date: Thu, 14 Dec 2023 22:30:58 +0800 Subject: [PATCH 09/21] Update README.md --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 0f0a640..4310edd 100644 --- a/README.md +++ b/README.md @@ -19,9 +19,9 @@ docker run -d --name v2ray -v /path/to/config.json:/etc/v2ray/config.json -p 100 ## 使用TPROXY透明代理的额外说明 -- 需要添加容器启动参数 `--privileged` 使用特权模式启动 -- 使用容器macvlan功能,为容器分配一个独占的主网络IP地址 -- macvlan默认不支持dns,启动容器时挂载宿主机 `-v /etc/resolv.conf:/etc/resolv.conf` 文件保证容器内域名可以正常解析 -- 为宿主机的主网卡开启混杂模式 -- 如果容器以host网络方式启动,则不需要以上几步操作,直接就可以用(不推荐host方式,还是推荐容器完全隔离模式启动) -- 启动容器使用 `--entrypoint="/usr/bin/v2ray-tproxy"` 覆盖默认的 entrypoint +- 需要添加容器启动参数 `--privileged` 使用特权模式启动 +- 使用容器macvlan功能,为容器分配一个独占的主网络IP地址 +- macvlan默认不支持dns,启动容器时挂载宿主机 `-v /etc/resolv.conf:/etc/resolv.conf` 文件保证容器内域名可以正常解析 +- 为宿主机的主网卡开启混杂模式 +- 如果容器以host网络方式启动,则不需要以上几步操作,直接就可以用(不推荐host方式,还是推荐容器完全隔离模式启动) +- 启动容器使用 `--entrypoint="/usr/bin/v2ray-tproxy"` 覆盖默认的 entrypoint From ad675386f128452aab328178eb92bbdcdbff65c9 Mon Sep 17 00:00:00 2001 From: xzxiaoshan <365384722@qq.com> Date: Thu, 14 Dec 2023 22:37:33 +0800 Subject: [PATCH 10/21] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4310edd..84157ca 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ docker run -d --name v2ray -v /path/to/config.json:/etc/v2ray/config.json -p 100 ## 使用TPROXY透明代理的额外说明 -- 需要添加容器启动参数 `--privileged` 使用特权模式启动 + - 需要添加容器启动参数 `--privileged` 使用特权模式启动 - 使用容器macvlan功能,为容器分配一个独占的主网络IP地址 - macvlan默认不支持dns,启动容器时挂载宿主机 `-v /etc/resolv.conf:/etc/resolv.conf` 文件保证容器内域名可以正常解析 - 为宿主机的主网卡开启混杂模式 From 964d6b8a0ffee500d077dd1e08df7f632ac9c070 Mon Sep 17 00:00:00 2001 From: xzxiaoshan <365384722@qq.com> Date: Thu, 14 Dec 2023 23:04:12 +0800 Subject: [PATCH 11/21] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 84157ca..4310edd 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ docker run -d --name v2ray -v /path/to/config.json:/etc/v2ray/config.json -p 100 ## 使用TPROXY透明代理的额外说明 - - 需要添加容器启动参数 `--privileged` 使用特权模式启动 +- 需要添加容器启动参数 `--privileged` 使用特权模式启动 - 使用容器macvlan功能,为容器分配一个独占的主网络IP地址 - macvlan默认不支持dns,启动容器时挂载宿主机 `-v /etc/resolv.conf:/etc/resolv.conf` 文件保证容器内域名可以正常解析 - 为宿主机的主网卡开启混杂模式 From 551a67404de02b76471f3e908805063ec9179969 Mon Sep 17 00:00:00 2001 From: xzxiaoshan <365384722@qq.com> Date: Thu, 14 Dec 2023 23:07:14 +0800 Subject: [PATCH 12/21] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4310edd..8051810 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ docker run -d --name v2ray -v /path/to/config.json:/etc/v2ray/config.json -p 100 ## 使用TPROXY透明代理的额外说明 -- 需要添加容器启动参数 `--privileged` 使用特权模式启动 +- 需要添加容器启动参数 `--privileged` 使用特权模式启动 - 使用容器macvlan功能,为容器分配一个独占的主网络IP地址 - macvlan默认不支持dns,启动容器时挂载宿主机 `-v /etc/resolv.conf:/etc/resolv.conf` 文件保证容器内域名可以正常解析 - 为宿主机的主网卡开启混杂模式 From 7adcb00e1abb1b7f4712e7ac6be4e55f49543ee1 Mon Sep 17 00:00:00 2001 From: xzxiaoshan <365384722@qq.com> Date: Thu, 14 Dec 2023 23:12:03 +0800 Subject: [PATCH 13/21] Update README.md --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 8051810..6eaad29 100644 --- a/README.md +++ b/README.md @@ -19,9 +19,9 @@ docker run -d --name v2ray -v /path/to/config.json:/etc/v2ray/config.json -p 100 ## 使用TPROXY透明代理的额外说明 -- 需要添加容器启动参数 `--privileged` 使用特权模式启动 -- 使用容器macvlan功能,为容器分配一个独占的主网络IP地址 -- macvlan默认不支持dns,启动容器时挂载宿主机 `-v /etc/resolv.conf:/etc/resolv.conf` 文件保证容器内域名可以正常解析 -- 为宿主机的主网卡开启混杂模式 -- 如果容器以host网络方式启动,则不需要以上几步操作,直接就可以用(不推荐host方式,还是推荐容器完全隔离模式启动) -- 启动容器使用 `--entrypoint="/usr/bin/v2ray-tproxy"` 覆盖默认的 entrypoint + - 需要添加容器启动参数 `--privileged` 使用特权模式启动 + - 使用容器macvlan功能,为容器分配一个独占的主网络IP地址 + - macvlan默认不支持dns,启动容器时挂载宿主机 `-v /etc/resolv.conf:/etc/resolv.conf` 文件保证容器内域名可以正常解析 + - 为宿主机的主网卡开启混杂模式 + - 如果容器以host网络方式启动,则不需要以上几步操作,直接就可以用(不推荐host方式,还是推荐容器完全隔离模式启动) + - 启动容器使用 `--entrypoint="/usr/bin/v2ray-tproxy"` 覆盖默认的 entrypoint From bb0059be02b36277e8c8601adae0eb4b1f21eafb Mon Sep 17 00:00:00 2001 From: xzxiaoshan <365384722@qq.com> Date: Fri, 15 Dec 2023 08:45:42 +0800 Subject: [PATCH 14/21] Update README.md --- README.md | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 6eaad29..0211ecc 100644 --- a/README.md +++ b/README.md @@ -19,9 +19,14 @@ docker run -d --name v2ray -v /path/to/config.json:/etc/v2ray/config.json -p 100 ## 使用TPROXY透明代理的额外说明 - - 需要添加容器启动参数 `--privileged` 使用特权模式启动 - - 使用容器macvlan功能,为容器分配一个独占的主网络IP地址 - - macvlan默认不支持dns,启动容器时挂载宿主机 `-v /etc/resolv.conf:/etc/resolv.conf` 文件保证容器内域名可以正常解析 - - 为宿主机的主网卡开启混杂模式 - - 如果容器以host网络方式启动,则不需要以上几步操作,直接就可以用(不推荐host方式,还是推荐容器完全隔离模式启动) - - 启动容器使用 `--entrypoint="/usr/bin/v2ray-tproxy"` 覆盖默认的 entrypoint + - 需要添加容器启动参数 `--privileged` 使用特权模式启动 + + - 使用容器macvlan功能,为容器分配一个独占的主网络IP地址 + + - macvlan默认不支持dns,启动容器时挂载宿主机 `-v /etc/resolv.conf:/etc/resolv.conf` 文件保证容器内域名可以正常解析 + + - 为宿主机的主网卡开启混杂模式 + + - 如果容器以host网络方式启动,则不需要以上几步操作,直接就可以用(不推荐host方式,还是推荐容器完全隔离模式启动) + + - 启动容器使用 `--entrypoint="/usr/bin/v2ray-tproxy"` 覆盖默认的 entrypoint From ede851fabe14522dded045cfe06aeccc576bee96 Mon Sep 17 00:00:00 2001 From: xzxiaoshan <365384722@qq.com> Date: Fri, 15 Dec 2023 09:10:02 +0800 Subject: [PATCH 15/21] Update README.md --- README.md | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 0211ecc..9423742 100644 --- a/README.md +++ b/README.md @@ -19,14 +19,9 @@ docker run -d --name v2ray -v /path/to/config.json:/etc/v2ray/config.json -p 100 ## 使用TPROXY透明代理的额外说明 - - 需要添加容器启动参数 `--privileged` 使用特权模式启动 - - - 使用容器macvlan功能,为容器分配一个独占的主网络IP地址 - - - macvlan默认不支持dns,启动容器时挂载宿主机 `-v /etc/resolv.conf:/etc/resolv.conf` 文件保证容器内域名可以正常解析 - - - 为宿主机的主网卡开启混杂模式 - - - 如果容器以host网络方式启动,则不需要以上几步操作,直接就可以用(不推荐host方式,还是推荐容器完全隔离模式启动) - - - 启动容器使用 `--entrypoint="/usr/bin/v2ray-tproxy"` 覆盖默认的 entrypoint +* 需要添加容器启动参数 `--privileged` 使用特权模式启动 +* 使用容器macvlan功能,为容器分配一个独占的主网络IP地址 +* macvlan默认不支持dns,启动容器时挂载宿主机 `-v /etc/resolv.conf:/etc/resolv.conf` 文件保证容器内域名可以正常解析 +* 为宿主机的主网卡开启混杂模式 +* 如果容器以host网络方式启动,则不需要以上几步操作,直接就可以用(不推荐host方式,还是推荐容器完全隔离模式启动) +* 启动容器使用 `--entrypoint="/usr/bin/v2ray-tproxy"` 覆盖默认的 entrypoint From a8c987f8724e1938f3b8bd626dd6bc5ae86553ac Mon Sep 17 00:00:00 2001 From: xzxiaoshan <365384722@qq.com> Date: Fri, 15 Dec 2023 09:18:16 +0800 Subject: [PATCH 16/21] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9423742..f5e222e 100644 --- a/README.md +++ b/README.md @@ -19,8 +19,8 @@ docker run -d --name v2ray -v /path/to/config.json:/etc/v2ray/config.json -p 100 ## 使用TPROXY透明代理的额外说明 -* 需要添加容器启动参数 `--privileged` 使用特权模式启动 -* 使用容器macvlan功能,为容器分配一个独占的主网络IP地址 +* 需要添加容器启动参数 `--privileged` 使用特权模式启动 + 使用容器macvlan功能,为容器分配一个独占的主网络IP地址 * macvlan默认不支持dns,启动容器时挂载宿主机 `-v /etc/resolv.conf:/etc/resolv.conf` 文件保证容器内域名可以正常解析 * 为宿主机的主网卡开启混杂模式 * 如果容器以host网络方式启动,则不需要以上几步操作,直接就可以用(不推荐host方式,还是推荐容器完全隔离模式启动) From 9fbcd83f5b312d5c7177e8fa7f9383db6a8dc3fe Mon Sep 17 00:00:00 2001 From: xzxiaoshan <365384722@qq.com> Date: Fri, 15 Dec 2023 12:06:54 +0800 Subject: [PATCH 17/21] Update README.md --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index f5e222e..0f437ca 100644 --- a/README.md +++ b/README.md @@ -19,9 +19,9 @@ docker run -d --name v2ray -v /path/to/config.json:/etc/v2ray/config.json -p 100 ## 使用TPROXY透明代理的额外说明 -* 需要添加容器启动参数 `--privileged` 使用特权模式启动 +- 需要添加容器启动参数 `--privileged` 使用特权模式启动 使用容器macvlan功能,为容器分配一个独占的主网络IP地址 -* macvlan默认不支持dns,启动容器时挂载宿主机 `-v /etc/resolv.conf:/etc/resolv.conf` 文件保证容器内域名可以正常解析 -* 为宿主机的主网卡开启混杂模式 -* 如果容器以host网络方式启动,则不需要以上几步操作,直接就可以用(不推荐host方式,还是推荐容器完全隔离模式启动) -* 启动容器使用 `--entrypoint="/usr/bin/v2ray-tproxy"` 覆盖默认的 entrypoint + macvlan默认不支持dns,启动容器时挂载宿主机 `-v /etc/resolv.conf:/etc/resolv.conf` 文件保证容器内域名可以正常解析 + 为宿主机的主网卡开启混杂模式 + 如果容器以host网络方式启动,则不需要以上几步操作,直接就可以用(不推荐host方式,还是推荐容器完全隔离模式启动) + 启动容器使用 `--entrypoint="/usr/bin/v2ray-tproxy"` 覆盖默认的 entrypoint From 4545ab7bf3382a5a5b54d2d3de58f406e3d500b6 Mon Sep 17 00:00:00 2001 From: xzxiaoshan <365384722@qq.com> Date: Fri, 15 Dec 2023 12:07:21 +0800 Subject: [PATCH 18/21] Update README.md --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 0f437ca..9b0d5c8 100644 --- a/README.md +++ b/README.md @@ -19,9 +19,9 @@ docker run -d --name v2ray -v /path/to/config.json:/etc/v2ray/config.json -p 100 ## 使用TPROXY透明代理的额外说明 -- 需要添加容器启动参数 `--privileged` 使用特权模式启动 - 使用容器macvlan功能,为容器分配一个独占的主网络IP地址 - macvlan默认不支持dns,启动容器时挂载宿主机 `-v /etc/resolv.conf:/etc/resolv.conf` 文件保证容器内域名可以正常解析 - 为宿主机的主网卡开启混杂模式 - 如果容器以host网络方式启动,则不需要以上几步操作,直接就可以用(不推荐host方式,还是推荐容器完全隔离模式启动) - 启动容器使用 `--entrypoint="/usr/bin/v2ray-tproxy"` 覆盖默认的 entrypoint + - 需要添加容器启动参数 `--privileged` 使用特权模式启动 + - 使用容器macvlan功能,为容器分配一个独占的主网络IP地址 + - macvlan默认不支持dns,启动容器时挂载宿主机 `-v /etc/resolv.conf:/etc/resolv.conf` 文件保证容器内域名可以正常解析 + - 为宿主机的主网卡开启混杂模式 + - 如果容器以host网络方式启动,则不需要以上几步操作,直接就可以用(不推荐host方式,还是推荐容器完全隔离模式启动) + - 启动容器使用 `--entrypoint="/usr/bin/v2ray-tproxy"` 覆盖默认的 entrypoint From 7b755ec562cef0f213e7dc0acf57d35b67498bc8 Mon Sep 17 00:00:00 2001 From: xzxiaoshan <365384722@qq.com> Date: Fri, 15 Dec 2023 12:12:35 +0800 Subject: [PATCH 19/21] Update README.md --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 9b0d5c8..be38ad5 100644 --- a/README.md +++ b/README.md @@ -19,9 +19,9 @@ docker run -d --name v2ray -v /path/to/config.json:/etc/v2ray/config.json -p 100 ## 使用TPROXY透明代理的额外说明 - - 需要添加容器启动参数 `--privileged` 使用特权模式启动 - - 使用容器macvlan功能,为容器分配一个独占的主网络IP地址 - - macvlan默认不支持dns,启动容器时挂载宿主机 `-v /etc/resolv.conf:/etc/resolv.conf` 文件保证容器内域名可以正常解析 - - 为宿主机的主网卡开启混杂模式 - - 如果容器以host网络方式启动,则不需要以上几步操作,直接就可以用(不推荐host方式,还是推荐容器完全隔离模式启动) - - 启动容器使用 `--entrypoint="/usr/bin/v2ray-tproxy"` 覆盖默认的 entrypoint +- 需要添加容器启动参数 `--privileged` 使用特权模式启动 +- 使用容器macvlan功能,为容器分配一个独占的主网络IP地址 +- macvlan默认不支持dns,启动容器时挂载宿主机 `-v /etc/resolv.conf:/etc/resolv.conf` 文件保证容器内域名可以正常解析 +- 为宿主机的主网卡开启混杂模式 +- 如果容器以host网络方式启动,则不需要以上几步操作,直接就可以用(不推荐host方式,还是推荐容器完全隔离模式启动) +- 启动容器使用 `--entrypoint="/usr/bin/v2ray-tproxy"` 覆盖默认的 entrypoint From bc4e2717bb7b58a8d65ed6dc1adc8d1847c8a338 Mon Sep 17 00:00:00 2001 From: xzxiaoshan <365384722@qq.com> Date: Mon, 18 Dec 2023 11:24:49 +0800 Subject: [PATCH 20/21] Update Dockerfile --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 30e127d..faabfb7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,7 +10,7 @@ COPY rules.v4 /etc/iptables/rules.v4 COPY tproxy.sh /usr/bin/v2ray-tproxy RUN set -ex \ - && apk add --no-cache ca-certificates iptables \ + && apk add --no-cache ca-certificates curl iptables \ && mkdir -p /etc/v2ray /usr/local/share/v2ray /var/log/v2ray \ # forward request and error logs to docker log collector && ln -sf /dev/stdout /var/log/v2ray/access.log \ @@ -19,4 +19,4 @@ RUN set -ex \ && chmod +x /usr/bin/v2ray-tproxy \ && "${WORKDIR}"/v2ray.sh "${TARGETPLATFORM}" "${TAG}" -ENTRYPOINT ["/usr/bin/v2ray"] \ No newline at end of file +ENTRYPOINT ["/usr/bin/v2ray"] From a946deeddd56e13aba94b13cd13bc4b0c407899f Mon Sep 17 00:00:00 2001 From: xzxiaoshan <365384722@qq.com> Date: Mon, 18 Dec 2023 11:25:11 +0800 Subject: [PATCH 21/21] Update v2ray.sh --- v2ray.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/v2ray.sh b/v2ray.sh index 7892af0..8f0c415 100644 --- a/v2ray.sh +++ b/v2ray.sh @@ -35,8 +35,8 @@ DGST_FILE="v2ray-linux-${ARCH}.zip.dgst" echo "Downloading binary file: ${V2RAY_FILE}" echo "Downloading binary file: ${DGST_FILE}" -wget -O ${PWD}/v2ray.zip https://github.com/v2fly/v2ray-core/releases/download/${TAG}/${V2RAY_FILE} > /dev/null 2>&1 -wget -O ${PWD}/v2ray.zip.dgst https://github.com/v2fly/v2ray-core/releases/download/${TAG}/${DGST_FILE} > /dev/null 2>&1 +curl -L -o ${PWD}/v2ray.zip https://github.com/v2fly/v2ray-core/releases/download/${TAG}/${V2RAY_FILE} > /dev/null 2>&1 +curl -L -o ${PWD}/v2ray.zip.dgst https://github.com/v2fly/v2ray-core/releases/download/${TAG}/${DGST_FILE} > /dev/null 2>&1 if [ $? -ne 0 ]; then echo "Error: Failed to download binary file: ${V2RAY_FILE} ${DGST_FILE}" && exit 1