Giter Site home page Giter Site logo

添加docker支持 about natmap HOT 12 OPEN

heiher avatar heiher commented on July 22, 2024 1
添加docker支持

from natmap.

Comments (12)

MikeWang000000 avatar MikeWang000000 commented on July 22, 2024

Thanks. 不过有一些建议可以作为参考:

  1. 可以采用多阶段 (Multi-stage builds) 的方式构建,这样可以避免把整个 GCC 打进镜像里面,减少镜像体积;
  2. NATMap 目前还没有内置 iptables 转发(虽然我曾提过这个事),NET_ADMIN NET_RAW 这两个权限还暂时用不到。

from natmap.

MikeWang000000 avatar MikeWang000000 commented on July 22, 2024

@heiher 另外不知是否有构建 Docker 镜像的规划?如果有我可以帮忙提个 PR。

from natmap.

Lxeon avatar Lxeon commented on July 22, 2024

Thanks. 不过有一些建议可以作为参考:

1. 可以采用多阶段 (Multi-stage builds) 的方式构建,这样可以避免把整个 GCC 打进镜像里面,减少镜像体积;

2. NATMap 目前还没有内置 iptables 转发(虽然我曾提过这个事),`NET_ADMIN` `NET_RAW` 这两个权限还暂时用不到。

更新

FROM ubuntu:latest as builder
ENV LANG        C.UTF-8
ENV LANGUAGE    C.UTF-8
ENV LC_ALL      C.UTF-8
RUN apt update \
    && apt upgrade -y \
    && apt install -y gcc git make curl \
    && git clone --recursive https://github.com/heiher/natmap.git \
    && cd natmap \
    && make \
    && cp ./bin/natmap /opt/natmap
FROM ubuntu:latest
RUN apt update \
    && apt upgrade -y \
    && apt install -y curl
COPY --from=builder /opt/natmap /opt/natmap
ENTRYPOINT ["/opt/natmap"]

感觉有些常用的命令也得加上去

from natmap.

heiher avatar heiher commented on July 22, 2024

@heiher 另外不知是否有构建 Docker 镜像的规划?如果有我可以帮忙提个 PR。

感谢 @Lxeon @MikeWang000000

如果能提个PR就太好了~ 有没有可能直接根据arch下载发布页由github action构建出来的二进制?那样会不会依赖简单一些

from natmap.

doyoman avatar doyoman commented on July 22, 2024

不编译,直接下载最新Releases的对应架构文件到alpine镜像就行吧,做好启动脚本和对应环境变量就ok,这样体积应该非常小

from natmap.

gmugu avatar gmugu commented on July 22, 2024

放在docker中运行,会出现端口占用问题

from natmap.

heiher avatar heiher commented on July 22, 2024

放在docker中运行,会出现端口占用问题

具体是什么错误?可能需要给net_admin的capability才行。

from natmap.

gmugu avatar gmugu commented on July 22, 2024

放在docker中运行,会出现端口占用问题

具体是什么错误?可能需要给net_admin的capability才行。

natmap-natmap-ssh-1 | [E] hev_sock_client_tcp src/hev-sock.c:167 Address in use
natmap-natmap-ssh-1 | [E] tnsk_run src/hev-tnsk.c:107 Start TCP keep-alive service failed.
natmap-natmap-ssh-1 | [E] hev_sock_client_tcp src/hev-sock.c:167 Address in use
natmap-natmap-ssh-1 | [E] tnsk_run src/hev-tnsk.c:107 Start TCP keep-alive service failed.
natmap-natmap-ssh-1 | [E] hev_sock_client_tcp src/hev-sock.c:167 Address in use
natmap-natmap-ssh-1 | [E] tnsk_run src/hev-tnsk.c:107 Start TCP keep-alive service failed.
natmap-natmap-ssh-1 | [E] hev_sock_client_tcp src/hev-sock.c:167 Address in use
natmap-natmap-ssh-1 | [E] tnsk_run src/hev-tnsk.c:107 Start TCP keep-alive service failed.
一直报这个打印

from natmap.

gmugu avatar gmugu commented on July 22, 2024

放在docker中运行,会出现端口占用问题

具体是什么错误?可能需要给net_admin的capability才行。

在宿主机执行过一次"natmap -4 -s stunserver.stunprotocol.org -h qq.com -b 443 -e /opt/ddns.sh -k 60"命令之后,再启动docker就没问题,个人猜测是在docker内无法打开端口重用

from natmap.

heiher avatar heiher commented on July 22, 2024

放在docker中运行,会出现端口占用问题

具体是什么错误?可能需要给net_admin的capability才行。

在宿主机执行过一次"natmap -4 -s stunserver.stunprotocol.org -h qq.com -b 443 -e /opt/ddns.sh -k 60"命令之后,再启动docker就没问题,个人猜测是在docker内无法打开端口重用

很有可能,当docker容器没有授权net_admin或privileged模式。如果监听443端口的服务没有重启过,在宿主机上执行过一次natmap后端口重用将持续有效。

from natmap.

gmugu avatar gmugu commented on July 22, 2024

放在docker中运行,会出现端口占用问题

具体是什么错误?可能需要给net_admin的capability才行。

在宿主机执行过一次"natmap -4 -s stunserver.stunprotocol.org -h qq.com -b 443 -e /opt/ddns.sh -k 60"命令之后,再启动docker就没问题,个人猜测是在docker内无法打开端口重用

很有可能,当docker容器没有授权net_admin或privileged模式。如果监听443端口的服务没有重启过,在宿主机上执行过一次natmap后端口重用将持续有效。

授权过net_admin或privileged模式了,问题还在,应该不是权限的问题。我看了端口重用的代码,docker容器实现隔离,pid也是隔离的,应该无法通过pid控制端口重用

from natmap.

heiher avatar heiher commented on July 22, 2024

放在docker中运行,会出现端口占用问题

具体是什么错误?可能需要给net_admin的capability才行。

在宿主机执行过一次"natmap -4 -s stunserver.stunprotocol.org -h qq.com -b 443 -e /opt/ddns.sh -k 60"命令之后,再启动docker就没问题,个人猜测是在docker内无法打开端口重用

很有可能,当docker容器没有授权net_admin或privileged模式。如果监听443端口的服务没有重启过,在宿主机上执行过一次natmap后端口重用将持续有效。

授权过net_admin或privileged模式了,问题还在,应该不是权限的问题。我看了端口重用的代码,docker容器实现隔离,pid也是隔离的,应该无法通过pid控制端口重用

正解。忘记这个细节了

from natmap.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.