AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 617167
Accepted
vasco.debian
vasco.debian
Asked: 2014-08-02 01:58:49 +0800 CST2014-08-02 01:58:49 +0800 CST 2014-08-02 01:58:49 +0800 CST

在 NATed 环境中通过 xinetd 进行端口转发

  • 772

我正在研究一种设置,该设置需要将来自服务器端口之一的请求重定向到 NATed 环境中的其他服务器端口(例如:来自 192.168.1.100:843 的所有请求都应重定向到 192.168.1.200:8443 - 两台服务器位于专用防火墙后面并在所有端口之间相互通信。)

服务正在服务器 192.168.1.200 的 8443 端口上运行。我通过 xinetd 在服务器 192.168.1.100 上配置了端口转发,如下所示。

service serv1
{
        bind            = 192.168.1.100
        protocol        = tcp
        flags           = REUSE
        socket_type     = stream
        port            = 843
        wait            = no
        user            = root
        redirect        = 192.168.1.200 8443
}

现在,当我在 LAN 内远程登录到 192.168.1.100 843 时,我可以在 192.168.1.200:8443 上连接服务

-> telnet 192.168.1.100 843
Trying 192.168.1.100...
Connected to 192.168.1.100.
Escape character is '^]'.

但是当我试图通过 192.168.1.100 的公共 IP 连接时,我得到“连接关闭”

-> telnet 1.2.3.4 843
Trying 1.2.3.4...
Connected to 1.2.3.4.
Escape character is '^]'.
Connection closed by foreign host.

在执行 tcpdump 时,我发现在后面的情况下请求不会到达服务器 192.168.1.200 本身。

我在我们的一个 DC 中进行了类似的设置,并且工作正常。任何想法,如果这里有什么问题。

谢谢,梅加南德

xinetd
  • 2 2 个回答
  • 632 Views

2 个回答

  • Voted
  1. Best Answer
    vasco.debian
    2014-08-02T02:54:47+08:002014-08-02T02:54:47+08:00

    好吧,经过进一步调查,我发现它由于 TCPWrappers 而被阻止 添加适当的规则后它的工作正常。

    以下添加到 /etc/hosts.allow

    serv1: ALL
    

    谢谢

    • 1
  2. kasperd
    2014-08-02T03:20:36+08:002014-08-02T03:20:36+08:00

    bind如果您希望它监听分配给主机的所有 IP,则需要删除该行。

    但是,这不能完全解释您的问题。如果这是您犯的唯一错误,则与其他 IP 的连接将被拒绝连接,而不是在建立连接后断开连接。

    其他东西可能正在侦听另一个 IP 地址上的相同端口号。这甚至可能是一项不同的xinetd服务。如果您有其他xinetd服务,看起来与此类似,它可以解释问题:

    service serv2
    {
            bind            = 192.0.2.42
            protocol        = tcp
            flags           = REUSE
            socket_type     = stream
            port            = 843
            wait            = no
            user            = root
            redirect        = 192.168.1.200 61868
    }
    

    这里的区别在于另一个正在侦听不同的 IP(但端口号相同),并连接到另一个端口号,该端口号已关闭。如果这是您所做的,那么与另一个 IP 地址的连接将建立一个已建立的连接,xinetd一旦意识到目标端口redirect已关闭,该连接就必须关闭。

    最后一部分只是猜测。如果你运行netstat -ntlpW,你应该能够看到,在那个其他 IP 上真正监听的是什么。

    • 1

相关问题

  • svnserve 与 xinetd + svnserve

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve