实现通过公网远程访问运行在服务器上的Python程序

前言

前段时间学习了HTTP的原理,并用Python语言实现了一个简单的HTTP服务器(带有多线程功能的哦);后面突发一想,我能把挂在本地服务器上,每次运行都需要打开虚拟机并运行程序(这样真的很麻烦)。我想起之前阿里云服务器打折的时候,也跟随着小伙伴一起入手了一个最低配的,之前这个服务器只是用来刷票的,现在终于能发挥他的作用了。

准备

1、程序
简单描述:我这个程序是能通过浏览器,访问程序并通过服务器上的资源路径把资源返回给浏览器并呈现出来,下面是这个程序的源码:

# 实现步骤:
#
# 编写一个TCP服务端程序
# 获取浏览器发送的http请求报文数据
# 读取固定页面数据,把页面数据组装成HTTP响应报文数据发送给浏览器。
# HTTP响应报文数据发送完成以后,关闭服务于客户端的套接字。


#1.导入模块
import socket
import threading
from urllib import request
import sys

# 注意,这段代码必须在命令行中运行。

# 实现步骤:
#
# 把提供服务的Web服务器抽象成一个类(HTTPWebServer)
# 提供Web服务器的初始化方法,在初始化方法里面创建socket对象
# 提供一个开启Web服务器的方法,让Web服务器处理客户端请求操作。
class WebServer(object):
    def __init__(self):
        # 2.创建socket对象
        tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        # 设置地址复用
        tcp_server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, True)
        # 3.绑定端口号
        tcp_server_socket.bind(("", 3389))
        # 4.设置监听模式
        tcp_server_
<think>好的,我需要帮用户推荐远程访问服务器运行代码的软件。用户之前的问题提到想找这样的工具,现在需要详细解答。 首先,根据系统级指令,回答要用中文,数学表达式用$...$,独立公式用$$...$$,不过这个问题可能用不上数学公式。然后要生成相关问题,正确使用LaTeX,添加引用标识。 用户提供的引用中有三个,分别是关于配置PyCharm远程开发、TensorBoard端口转发,以及远程桌面连接的问题。这些引用需要自然地融入到回答中,作为推荐的依据。 推荐的软件应该包括几个类别:SSH工具、IDE远程功能、内网穿透工具、远程桌面工具。每个类别举几个例子,并说明如何应用。比如: 1. SSH工具:PuTTY、Termius、MobaXterm。这些是基础工具,用户可以通过命令行操作服务器运行代码。引用[2]中提到的SSH命令可以用来转发端口,比如TensorBoard的例子。 2. IDE远程开发:PyCharm和VSCode都支持远程连接服务器。引用[1]详细讲了PyCharm的配置,包括配置服务器解释器和内网穿透。这里可以提到如何设置,并引用[1]和[3]中的内网穿透部分。 3. 内网穿透工具:Cpolar、frp、Ngrok。这些工具帮助没有公网IP的用户访问内网服务器。引用[1]和[3]都提到了Cpolar,可以引用说明。 4. 远程桌面工具:Windows的RDP、TeamViewer、AnyDesk。引用[3]提到了远程桌面连接的问题,可能涉及这类工具,虽然用户问题主要是运行代码,但远程桌面也是一种方式,需要简要提及。 然后需要注意事项部分,比如网络稳定性、安全措施(SSH密钥)、资源占用。这些可以从引用中的问题总结,比如引用[3]提到的连接错误可能涉及网络和配置。 最后生成相关问题,可能涉及SSH使用、优化远程连接、内网穿透比较、安全措施等,确保问题与推荐内容相关,并参考之前的引用。 检查是否符合所有系统指令,尤其是引用标识是否正确添加,比如PyCharm配置引用[1],SSH端口转发引用[2],内网穿透引用[1]和[3],远程桌面问题引用[3]。确保每个引用只在相关部分末尾自然出现,不要重复。 确认回答结构清晰,分点明确,帮助用户逐步选择合适的工具。语言要口语化,避免使用Markdown格式,按照用户可见层的要求。</think>### 远程访问服务器运行代码的工具推荐 #### 1. **SSH工具(基础命令行访问)** - **PuTTY**(Windows):免费开源,支持SSH/Telnet协议,适合通过命令行直接操作服务器运行脚本或代码[^2]。 - **Termius**(跨平台):界面友好,支持SFTP文件传输和SSH隧道,适合需要端口转发的场景(如远程运行TensorBoard)[^2]。 - **MobaXterm**(Windows):集成SSH、SFTP、X11转发等功能,支持多标签操作,适合需要图形化辅助的开发。 #### 2. **IDE远程开发插件** - **PyCharm Professional**:通过配置远程Python解释器,可直接在本地编写代码并同步到服务器运行,支持调试和依赖管理[^1]。 ```python # 示例:PyCharm配置远程解释器后,本地代码自动同步到服务器执行 def remote_execution(): print("代码在服务器环境运行") ``` - **VSCode + Remote-SSH插件**:免费且轻量,支持直接编辑远程文件、集成终端和调试工具,适合多语言开发。 #### 3. **内网穿透工具(无公网IP场景)** - **Cpolar**:简单易用,可创建临时或固定的公网地址映射到本地服务器,配合PyCharm或SSH实现异地开发[^1][^3]。 - **frp/Ngrok**:开源方案,需自行部署,适合对安全性要求较高的场景。 #### 4. **远程桌面工具(图形化操作)** - **Windows远程桌面(RDP)**:适合Windows服务器,提供完整图形界面,但需开放3389端口并配置网络权限。 - **TeamViewer/AnyDesk**:跨平台,通过ID和密码直连,适合临时调试或小型团队协作。 --- ### **注意事项** 1. **网络稳定性**:SSH或内网穿透需保证网络延迟较低,避免代码同步中断[^3]。 2. **安全措施**:建议使用SSH密钥登录替代密码,并限制IP访问权限[^2][^3]。 3. **资源占用**:远程运行代码时需监控服务器CPU/内存,避免过载[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值