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 / 问题 / 999941
Accepted
beard black
beard black
Asked: 2020-01-23 05:52:11 +0800 CST2020-01-23 05:52:11 +0800 CST 2020-01-23 05:52:11 +0800 CST

端口重定向 443 到 8443 不适用于我的 tomcat 实例

  • 772

我在专用主机服务器上使用 ubuntu 无头服务器 18.04。主机有外部防火墙,我在其中打开了端口 8443,443 (tcp)。在我使用 iptables 的 ubuntu 服务器上,我使用表 nat 将端口 443 重定向到 8443。

iptables -A PREROUTING -t nat -p tcp --dport 443 -j REDIRECT --to-ports 8443

我还打开了入站和出站端口 443 和 8443。

我仍然可以使用 example.com:8443 访问 tomcat 实例并且没有问题,但 example.com 没有响应。查看 iptables 我没有看到任何丢弃数据包。在我的 tomcat 上,我没有更改 server.xml。连接器听 8443。我不知道,问题出在哪里?我希望一些专家可以帮助我解决这个问题。

亲切的问候

黑胡子

linux
  • 2 2 个回答
  • 4335 Views

2 个回答

  • Voted
  1. Best Answer
    Garreth McDaid
    2020-01-23T07:38:06+08:002020-01-23T07:38:06+08:00

    您真正需要的是一个反向代理(例如 Nginx),它可以在端口 443 上为您执行 SSL 终止,然后在端口 8443 上将请求传递给 Tomcat。

    SSL/TLS 很复杂,在我看来,依靠 IPTABLES 处理 SSL 握手并将您的请求发送到 Tomcat 应用程序并不是一个好主意。

    如果您真的需要使用 IPTABLES,请连接到该服务openssl并找出到底发生了什么。在此处报告输出,可能会提供更多帮助。

    openssl s_client -connect www.example.com:443
    

    问题也可能是您正在使用该nat表。我的理解是,仅当请求通过服务器路由时才应用此表的规则,而不是路由到同一 IP 地址上的不同端口。

    反向代理会消除很多这种复杂性,并为您提供更多功能(例如速率限制、访问控制等)来启动。

    • 1
  2. sensadrome
    2020-01-23T07:05:37+08:002020-01-23T07:05:37+08:00

    这可能取决于您的 tomcat 绑定到哪个接口。如果它绑定到环回接口,那么这根本不起作用。

    大多数情况下,REDIRECT 目标与指定的接口一起使用,例如:

    iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 443 -j REDIRECT --to-port 8443
    

    (将 eth1 替换为运行 tomcat 的实际网络接口)

    REDIRECT 是 DNAT 目标的一种便捷方法,因此如果上述方法不起作用,您可以尝试以下方法:

    iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination 10.0.0.1:8443
    

    (将 10.0.0.1 替换为您机器的 ip 地址)

    • 0

相关问题

  • Linux 主机到主机迁移

  • 如何在 Linux 机器上找到有关硬件的详细信息?

  • 如何在 Linux 下监控每个进程的网络 I/O 使用情况?

  • 在 RHEL4 上修改 CUPS 中的现有打印机设置

  • 为本地网络中的名称解析添加自定义 dns 条目

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