Win10下运行命令:python upload.py
如果之前没有安装过python,会自动弹出在线商店界面,手动安装即可。
Linux从网页拉取文件:wget http://192.168.2.105:8000/CA.cer -O /tmp/certs/CA.cer
其中的192.168.2.105是Win10的IP。
upload.py的内容如下:
import http.server
import socketserver
import os
import sys
from datetime import datetime
# --- 配置区域 ---
PORT = 8000
# 设置要共享的目录,默认为脚本所在的目录,也可以指定为桌面等其他路径
# 例如: SHARED_DIR = os.path.join(os.path.expanduser("~"), "Desktop")
SHARED_DIR = os.getcwd()
# ----------------
class RobustHandler(http.server.SimpleHTTPRequestHandler):
def __init__(self, *args, **kwargs):
# 指定共享目录
super().__init__(*args, directory=SHARED_DIR, **kwargs)
def log_message(self, format, *args):
"""
重写日志方法,使其打印到 stdout 并带时间戳,
这样你可以清楚地看到 vCenter 的请求是否到达。
"""
sys.stdout.write("[%s] %s\n" % (
datetime.now().strftime('%Y-%m-%d %H:%M:%S'),
format % args))
sys.stdout.flush()
def end_headers(self):
"""
添加 CORS 头(可选),防止某些严格的客户端报错
"""
self.send_header('Access-Control-Allow-Origin', '*')
super().end_headers()
def run_server():
# 检查目录是否存在
if not os.path.exists(SHARED_DIR):
print(f"❌ 错误:指定的共享目录不存在 -> {SHARED_DIR}")
return
# 使用 ThreadingTCPServer 以支持多个并发连接(虽然这里只需要一个,但更稳健)
with socketserver.ThreadingTCPServer(("", PORT), RobustHandler) as httpd:
print("**************************************************")
print(f"🚀 增强版 HTTP 服务器已启动!")
print(f"📂 共享目录: {SHARED_DIR}")
print(f"🌐 访问地址: http://<你的Windows_IP>:{PORT}/")
print(f"📄 请确保你的文件(如 vc.cer)在上述目录中")
print("💡 按 Ctrl+C 停止服务")
print("**************************************************")
try:
httpd.serve_forever()
except KeyboardInterrupt:
print("\n👋 服务器已手动停止。")
if __name__ == "__main__":
run_server()