0

我已经查看并尝试了几个小时,但似乎没有任何效果。这是信息:

  • 在我的 Windows 机器上,我使用 PuTTY 或 MobaXterm 通过 SSH(仅限命令行)连接到远程 Linux 服务器。

  • 我用这个命令开始了一个新项目:django-admin startproject mysite.

  • source我使用命令激活虚拟环境。

  • 我使用以下命令运行服务器:python3 manage.py runserver 0.0.0.0:8000.

  • 假设ip a结果的输出为以下假 IP 地址:

1:inet 127.0.0.1/8 范围主机 lo

2:inet 172.10.12.50/24 brd 172.10.12.200 范围全球 ens3

3:inet 62.3.8.10/26 brd 62.3.8.22 范围全球 ens4

怎么办?我不知道如何访问该网站。我尝试了各种 IP 地址,我尝试使用 PuTTY 的隧道/端口转发功能,我尝试了解 MobaXterm 的隧道/端口转发功能,我想我已经尝试了这些设置中所有可能的 IP 地址组合. 没有任何效果。

当端口转发正常工作时,我应该能够使用http://127.0.0.1:8000访问该站点,但这还没有发生。我也尝试过使用ip a命令中的其他 IP 地址。

4

2 回答 2

3

我们终于想通了。问题是使用跳转服务器。我先登录到 serverA,然后使用 ssh 登录到项目所在的 serverB。我们这样做是因为如果不先访问 serverA,我们就无法访问 serverB。(我不知道为什么。)

所以我在 PuTTY 中使用的设置 Connection > SSH > Tunnels 是:

  • 来源 = 8000
  • 目的地 = 0.0.0.0:8000

然后在我登录到 serverA 后,我使用以下命令登录到 serverB:

$ ssh serverB -L8000:0.0.0.0:8000

然后我运行虚拟环境的源命令,然后运行 ​​runserver 命令:

$ python3 manage.py runserver 0.0.0.0:8000

然后我可以通过我的本地机器访问该网站http://127.0.0.1:8000

现在要在 MobaXterm 中解决这个问题,因为那是我首选的 SSH 客户端......

于 2019-09-05T19:30:05.913 回答
0

如果您在该 Linux 发行版上运行,这适用于 RHEL 7.* 或 CentOS:

你有没有试过关闭你的firewalld来测试一下你是否可以通过浏览器访问django?如果您还没有,只需通过键入查看防火墙状态是否处于活动状态sudo firewall-cmd --state,然后通过sudo systemctl stop firewalld

尝试测试以查看您是否通过 [external IPv4]:8000 访问它。如果可以,那么我们正在取得进展。

sudo service firewalld start使用以下命令打开firewalld并允许http服务通过防火墙firewall-cmd --permanent --add-service=http

最后,重新加载防火墙firewall-cmd --reload

希望这应该有效。

于 2019-09-05T17:16:49.673 回答