stunnel 只能在端口 80 上接受,可能是 iptables 配置

stunnel 只能在端口 80 上接受,可能是 iptables 配置

我正在尝试让 stunnel 从一个端口(最终通过 443 上的 https)转发到端口 8080。

远程浏览器已经可以正确查看 8080 上提供的 http 服务。

我尝试了 4.42 - 4.55 之间的 4 个版本的 stunnel。在 Ubuntu 16 和 18 上。

stunnel 程序输出:

...
[!] bind: Address already in use (98)
[!] Error binding service [myhttp] to 0.0.0.0:9985
...

stunnel.conf(我是否遗漏了什么?网络上有各种说法称应该添加这个或那个):

cert = /etc/letsencrypt/live/<<my-domain>>/cert.pem
key = /etc/letsencrypt/live/<<my-domain>>/privkey.pem
[myhttp]
accept = 9985
connect = 8080

我尝试在端口前加上127.0.0.1:::1:。 (这会影响上面的 0.0.0.0 的更改,但结果相同。)

我的防火墙:

root@localhost:/home/my# iptables -L -v
Chain INPUT (policy ACCEPT 211 packets, 160K bytes)
pkts bytes target     prot opt in     out     source               destination
145  849K ACCEPT     all  --  lo     any     anywhere             anywhere
8874 1008K ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp dpt:ssh
248 24754 ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp dpt:http
310 22151 ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp dpt:https
0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp dpt:9985
0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp dpt:9986

如果我添加到 /etc/services:

myhttp          9985/tcp

那么的输出iptables -L -v包含... tcp dpt:myhttp...,但是仍然有0接受。

如果我将 stunnel.conf 中的条目更改为, accept = 80那么远程浏览器就可以通过该端口获得 https 连接,并在端口 8080 上获取页面,并且它具有 ssl-lock-symbol。但是,使用端口 80 进行 https 并不是解决方案,我需要该端口来提供纯 http 或将浏览器定向到 https 端口。

答案1

我终于让它工作了。我的托管服务提供商在此服务器外添加了另一个防火墙,因此除了配置 iptables 之外,我还必须访问提供商的网站并在那里配置防火墙设置(然后它们需要几分钟才能生效,所以请耐心等待)。

相关内容