วิธีง่าย ๆ ในการแก้ไขปัญหา Codex Desktop เชื่อมต่อใหม่ซ้ำถึง 5 ครั้ง

@jinglian
จีน1 เดือนที่ผ่านมา · 06 มิ.ย. 2569
500K
883
151
54
2.2K

TL;DR

บทความนี้อธิบายวิธีแก้ไขปัญหา WebSocket handshake timeout ของ Codex Desktop ด้วยการตั้งค่าตัวแปรสภาพแวดล้อม HTTP และ HTTPS proxy ในไฟล์กำหนดค่าของแอปพลิเคชันอย่างถูกต้อง

前端哥Liam - inline image

2:59

เมื่อใช้ Codex Desktop คุณคงเจอสถานการณ์แบบนี้บ่อยครั้ง:

前端哥Liam - inline image

เกือบทุกครั้ง มันจะตอบกลับหลังจากพยายามเชื่อมต่อใหม่ 5 ครั้งเท่านั้น การเชื่อมต่อใหม่ 5 ครั้งนี้ทำให้ทุกคนต้องรอนานเกินไปและเสียเวลาเปล่า ๆ

สาเหตุก็คือ หลังจากอัปเกรดเวอร์ชันใหม่ของ Codex Desktop (ไม่ทราบเวอร์ชันที่แน่นอน) วิธีการเชื่อมต่อเริ่มต้นถูกเปลี่ยนเป็น โปรโตคอล WebSocket เมื่อไม่สามารถเชื่อมต่อได้ ก็จะแสดงในล็อกเป็น WebSocket handshake timeout ทันที

ทำไมถึงเกิดเหตุการณ์นี้? เพราะ Codex Desktop เป็นแอปพลิเคชันเดสก์ท็อป มันไม่ได้รับพร็อกซีของระบบโดยอัตโนมัติเหมือนเบราว์เซอร์ เมื่อมันเริ่มทำงาน มันต้องอ่านตัวแปรสภาพแวดล้อมอย่าง HTTP_PROXY และ HTTPS_PROXY อย่างชัดเจนเพื่อใช้พร็อกซี ถ้าตัวแปรเหล่านี้ไม่ได้ตั้งค่าไว้ มันจะถือว่าเชื่อมต่อโดยตรงได้ ส่งผลให้ไม่มีตอบสนองเป็นเวลานานและเข้าสู่วงจรการเชื่อมต่อใหม่

ใช้ macOS เป็นตัวอย่าง

  1. ป้อนคำสั่งต่อไปนี้ในเทอร์มินัลเพื่อดูข้อมูลพร็อกซี:
text
1scutil --proxy
前端哥Liam - inline image

ภาพด้านบนแสดงว่าพอร์ตพร็อกซีสำหรับทั้ง http และ https คือ 6152 คุณสามารถสร้างหรือแก้ไขไฟล์ ~/.codex/.env ที่มีอยู่ด้วยตนเองและเขียนตัวแปรพร็อกซี

text
1HTTP_PROXY=http://127.0.0.1:6152
2HTTPS_PROXY=http://127.0.0.1:6152

หลังจากแก้ไข ~/.codex/.env และบันทึกแล้ว ให้ปิด Codex Desktop แล้วเปิดใหม่อีกครั้งเพื่อแก้ปัญหานี้

ถ้าคุณไม่ต้องการทำด้วยตนเอง คุณสามารถใช้ Prompt ต่อไปนี้และส่งไปยัง Codex:

text
1ช่วยแก้ปัญหา Codex Desktop ที่เชื่อมต่อซ้ำอยู่เรื่อย ๆ
2
3โปรดค้นหาพอร์ตโปรโตคอลพร็อกซีที่เครื่องของฉันกำลังใช้อยู่ จากนั้นสร้างหรืออัปเดต ~/.codex/.env และเขียนการกำหนดค่าพร็อกซีต่อไปนี้ ห้ามกำหนดพอร์ตแบบตายตัว โปรดแทนที่ด้วยพอร์ตจริง ถ้าไฟล์มีอยู่แล้ว ให้เก็บการกำหนดค่าอื่นไว้
4
5HTTP_PROXY="http://127.0.0.1:<HTTP or mixed port>"
6HTTPS_PROXY="http://127.0.0.1:<HTTP or mixed port>"
7
8หลังจากเขียนแล้ว ให้ตรวจสอบว่าการกำหนดค่าถูกต้องหรือไม่ และบอกฉันว่าต้องรีสตาร์ท Codex Desktop อย่างไร

แน่นอน คุณสามารถลองใช้สคริปต์อัตโนมัติแบบคลิกเดียวของฉันได้ (เฉพาะ macOS):

bash
1#!/bin/bash
2# ตรวจสอบพร็อกซีระบบ macOS และอัปเดต ~/.codex/.env
3
4ENV_DIR="$HOME/.codex"
5ENV_FILE="$ENV_DIR/.env"
6
7# อ่านการกำหนดค่าพร็อกซีของระบบ
8proxy_info=$(scutil --proxy)
9
10http_enabled=$(echo "$proxy_info" | awk '/HTTPEnable/{print $3}')
11http_host=$(echo "$proxy_info" | awk '/HTTPProxy/{print $3}')
12http_port=$(echo "$proxy_info" | awk '/HTTPPort/{print $3}')
13
14https_enabled=$(echo "$proxy_info" | awk '/HTTPSEnable/{print $3}')
15https_host=$(echo "$proxy_info" | awk '/HTTPSProxy/{print $3}')
16https_port=$(echo "$proxy_info" | awk '/HTTPSPort/{print $3}')
17
18# สร้าง URL พร็อกซี
19http_proxy=""
20https_proxy=""
21
22if [[ "$http_enabled" == "1" && -n "$http_host" && -n "$http_port" ]]; then
23 http_proxy="http://${http_host}:${http_port}"
24fi
25
26if [[ "$https_enabled" == "1" && -n "$https_host" && -n "$https_port" ]]; then
27 https_proxy="http://${https_host}:${https_port}"
28fi
29
30# ถ้าไม่พบพร็อกซี HTTP หรือ HTTPS
31if [[ -z "$http_proxy" && -z "$https_proxy" ]]; then
32 echo "❌ ไม่พบพร็อกซีระบบ ไม่ได้ใช้การตั้งค่าพร็อกซี"
33 exit 0
34fi
35
36# ถ้า HTTPS ไม่ได้ตั้งค่าแยก ให้ใช้พร็อกซี HTTP ซ้ำ
37if [[ -n "$http_proxy" && -z "$https_proxy" ]]; then
38 https_proxy="$http_proxy"
39fi
40
41echo "✅ ตรวจพบพร็อกซีระบบ:"
42[[ -n "$http_proxy" ]] && echo " HTTP_PROXY=$http_proxy"
43[[ -n "$https_proxy" ]] && echo " HTTPS_PROXY=$https_proxy"
44
45# ตรวจสอบให้แน่ใจว่าไดเรกทอรีมีอยู่
46mkdir -p "$ENV_DIR"
47
48# ถ้าไฟล์ .env ไม่มีอยู่ ให้สร้าง
49if [[ ! -f "$ENV_FILE" ]]; then
50 {
51 [[ -n "$http_proxy" ]] && echo "HTTP_PROXY=$http_proxy"
52 [[ -n "$https_proxy" ]] && echo "HTTPS_PROXY=$https_proxy"
53 } > "$ENV_FILE"
54 echo "📄 สร้าง $ENV_FILE และเขียนการกำหนดค่าพร็อกซี"
55 exit 0
56fi
57
58# ไฟล์มีอยู่แล้ว อัปเดตหรือเพิ่มต่อท้าย
59update_or_append() {
60 local key="$1" value="$2"
61 if grep -q "^${key}=" "$ENV_FILE"; then
62 sed -i '' "s|^${key}=.*|${key}=${value}|" "$ENV_FILE"
63 echo "🔄 อัปเดต ${key}"
64 else
65 echo "${key}=${value}" >> "$ENV_FILE"
66 echo "➕ เพิ่ม ${key}"
67 fi
68}
69
70[[ -n "$http_proxy" ]] && update_or_append "HTTP_PROXY" "$http_proxy"
71[[ -n "$https_proxy" ]] && update_or_append "HTTPS_PROXY" "$https_proxy"
72
73echo "✅ อัปเดต $ENV_FILE เสร็จสมบูรณ์"

ต้องการเริ่มต้นกับ AI อย่างรวดเร็วแต่ไม่รู้จะเริ่มจากตรงไหน?

AI Spark ได้จัดทำฐานความรู้ AI ฟรี ซึ่งครอบคลุมพื้นฐาน AI การสร้างฐานความรู้ การประยุกต์ใช้เวิร์กโฟลว์ เครื่องมือ AI หลัก Obsidian, Codex, Skill และการฝึกฝน Prompt

ฐานความรู้ฟรี:

https://lcnniolukk80.feishu.cn/wiki/space/7644091204958866380?ccm_open_type=lark_wiki_spaceLink&open_tab_from=wiki_home

บันทึกในคลิกเดียว

อ่านบทความไวรัลเชิงลึกด้วย AI ใน YouMind

บันทึกแหล่งที่มา ถามคำถามที่ตรงประเด็น สรุปข้อโต้แย้ง และเปลี่ยนบทความไวรัลให้เป็นโน้ตที่นำกลับมาใช้ได้ใน AI เวิร์กสเปซเดียว

สำรวจ YouMind
สำหรับครีเอเตอร์

เปลี่ยน Markdown ของคุณให้เป็นบทความ 𝕏 ที่สะอาดตา

เวลาคุณเผยแพร่งานเขียนยาวของตัวเอง การจัดรูปแบบรูปภาพ ตาราง และบล็อกโค้ดให้เข้ากับ 𝕏 นั้นน่าปวดหัว YouMind เปลี่ยนร่าง Markdown ทั้งฉบับให้เป็นบทความ 𝕏 ที่สะอาดตาและพร้อมโพสต์ทันที

ลอง Markdown เป็น 𝕏

แพตเทิร์นให้ถอดรหัสเพิ่มเติม

บทความไวรัลล่าสุด

สำรวจบทความไวรัลเพิ่มเติม