You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 20.04服务器下如何在指定端口运行Python应用并通过PuTTY连接?

解决Ubuntu 20.04 Server上Python消息应用端口暴露与PuTTY直接连接问题

一、确保Python应用监听正确地址

你的Python应用必须绑定到0.0.0.0而非默认的127.0.0.1,否则仅能本地访问,外部(包括PuTTY)无法连接。示例代码如下:

  • 原生Socket实现:
import socket

server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(('0.0.0.0', 8000))  # 8000替换为你指定的端口
server.listen(5)
  • Flask框架示例:
from flask import Flask
app = Flask(__name__)

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=8000)

二、开放服务器端口(UFW防火墙)

Ubuntu默认启用UFW,需手动放行目标端口:

sudo ufw allow 8000/tcp
sudo ufw reload

验证规则:

sudo ufw status

输出中出现8000/tcp ALLOW Anywhere即为生效。

三、让应用后台持久运行(替代Screen的可靠方案)

Screen会话易因意外断开终止,推荐以下两种方式:

方法1:nohup快速后台启动

在SSH会话中执行:

nohup python3 your_app.py > app.log 2>&1 &
  • nohup确保进程脱离终端,断开SSH后仍运行
  • > app.log 2>&1将日志输出到文件,方便排查问题
  • 查看进程:ps aux | grep your_app.py
  • 终止进程:kill <进程PID>

方法2:Systemd服务(支持开机自启)

  1. 创建服务配置文件:
sudo nano /etc/systemd/system/messaging-app.service
  1. 写入配置(替换占位内容):
[Unit]
Description=Messaging Application Service
After=network.target

[Service]
User=your_username  # 替换为你的服务器用户名
WorkingDirectory=/path/to/your/app  # 替换为应用所在目录
ExecStart=/usr/bin/python3 /path/to/your/app/your_app.py  # 应用绝对路径
Restart=always  # 进程异常终止时自动重启

[Install]
WantedBy=multi-user.target
  1. 启动并设置开机自启:
sudo systemctl daemon-reload
sudo systemctl start messaging-app.service
sudo systemctl enable messaging-app.service
  1. 查看服务状态:
sudo systemctl status messaging-app.service

四、PuTTY直接连接应用端口

打开PuTTY,在Connection type选择Raw,Host Name填入服务器公网IP,Port填入你指定的端口(如8000),点击Open即可直接连接到消息应用。

注意:若服务器在云平台(阿里云、AWS等),需在云控制台安全组中放行对应TCP端口,否则外部无法访问。

内容的提问来源于stack exchange,提问作者supervoaleh32

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 08:56:08