【问题标题】:python socket and vpnpython套接字和vpn
【发布时间】:2020-04-07 21:04:16
【问题描述】:

我的问题是,如果我使用 vpn 并尝试在 python 套接字消息上发送消息,而不是任何协议,我的套接字流量会通过 vpn 并且我的 ip 对消息接收者隐藏吗?我发现使用wireshark 看不到流量,因为它不是任何协议。 感谢您的帮助!

【问题讨论】:

  • “不属于任何协议”是什么意思?请分享一些代码。
  • 流量是否通过 VPN 发送取决于目的地和 VPN 的设置。在大多数情况下,使用正确设置的 VPN,流量将通过 VPN 发送,但并非所有设置和所有目的地都是如此。如果它是通过 VPN 设置的,则目的地将看到 IP 端点的 IP,而不是您的本地 IP 地址。而且,这与 Python 无关,但所有应用程序的行为都是相同的,除非它们特别尝试不同。
  • @arghol 我的意思是我没有发送任何 http/etc。协议消息,例如 socket.send("hello")
  • @IsaacDj 在什么情况下不会?
  • 使用 Wireshark 看不到流量的原因可能是您正在查看错误的网络接口。 VPN 通常使用自己的虚拟适配器,而不是以太网或 wi-fi 适配器等物理适配器。

标签: python sockets vpn


【解决方案1】:

可以建立与 vpn 的套接字连接,但是... 我尝试了相同的项目并得到了这个结果:

  1. 要在 VPN 服务器中建立套接字连接,您需要将执行代码的设备连接到 vpn。

  2. 输入 ipconfig 并获取 vpn 的 IP 地址并使用该 IP 在 Python 中绑定一个套接字。

  3. 现在,如果您在同一台电脑上执行项目,项目就可以工作了。

但如果您在另一台电脑上使用不同的 Wi-Fi 连接,它不会,但为什么?

端口转发来了:

vpn 为您的计算机分配一个私有 IP 地址。私有 IP 地址可用于与 LAN(调制解调器)内的设备进行通信。但是,如果您尝试从其他网络连接私有 IP 地址,它将无法与您的 PC 通信。因此,使用此公共 IP 地址来解决此问题。每个调制解调器(甚至是 VPN 服务器)都有一个公共 IP 地址。它就像一个用于跨任何网络进行设备通信的工具。例如,在线游戏服务器使用公共 IP 地址运行。这就是在 Windows 中进入在线游戏时弹出 Windows 防火墙的原因。但即使您输入公共 IP,套接字也不起作用。

端口转发来了。想想,许多设备都连接到您的网络或 vpn 服务器。调制解调器或 vpn 不知道应该由哪个设备传输消息。如果您端口转发私有 IP 地址和确切的端口号。现在终于可以用了!

注意:公共 IP 很敏感,黑客可以使用公共 IP 地址进入任何 VPN 服务器。所以大多数 VPN 提供商不提供公共 IP。只有使用主 VPN 服务器,您才能进行端口转发。因此,您需要联系 VPN 服务提供商并请求将端口转发到您的私有 IP,最后对您的套接字进行编程,您的项目可能会工作。

注意:套接字需要 TCP/UDP 协议。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-12
    • 2012-05-23
    • 2013-04-14
    • 2022-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多