首页 > 解决方案 > 为什么 stunnel 不断抛出“地址已在使用 (48)”?

问题描述

我正在 Django 项目中实现 Auth0,使用 stunnel 创建 https 连接。我按照这个指示

这是我的 dev_https 文件:

pid=

cert = stunnel/stunnel.pem
foreground = yes
output = stunnel.log

[https]
accept=8080
connect=8000
TIMEOUTclose=1

但是,当我想启动服务器时,使用以下命令:

stunnel stunnel/dev_https &
python3 manage.py runserver&

我得到以下信息:

[.] Configuration successful
[ ] Deallocating deployed section defaults
[ ] Binding service [https]
[ ] Listening file descriptor created (FD=9)
[ ] Setting accept socket options (FD=9)
[ ] Option SO_REUSEADDR set on accept socket
[.] Binding service [https] to :::8080: Address already in use (48)
[ ] Listening file descriptor created (FD=9)
[ ] Setting accept socket options (FD=9)
[ ] Option SO_REUSEADDR set on accept socket
[.] Binding service [https] to 0.0.0.0:8080: Address already in use (48)
[!] Binding service [https] failed

我尝试将接受端口从 8443 更改为 8080。结果相同

然后我检查了端口上的活动进程

lsof -i 8080

这表明 stunnel 已经在端口上运行。我终止了该过程并再次尝试,但我得到了同样的错误。

具体问题

  1. 有人可以简要解释一下接受和连接端口之间的请求流,以及这与我在其上运行 Django 的普通端口(端口 8000)有何关系?
  2. 我该如何解决?

谢谢!/托马斯

标签: djangohttpsstunnel

解决方案


推荐阅读