문제 현상
어플리케이션 실행 중 아래와 같은 네트워크 오류가 발생:
Network error: [TypeError: fetch failed] { [cause]: ConnectTimeoutError:
Connect Timeout Error (attempted address: 10.0.0.9:7897, timeout: 10000ms)
오류 메시지에서 특정 IP(10.0.0.9:7897)로의 접속 시도가 타임아웃되었음을 확인할 수 있으며, 이는 어플리케이션이 의도하지 않은 프록시를 사용하고 있음을 시사한다.
원인 분석
1. 쉘 환경 변수 점검
현재 세션의 환경 변수에 프록시 설정이 있는지 확인:
env | grep -i proxy
결과가 비어 있어, 현재 터미널 세션에서는 프록시가 설정되지 않음이 확인됨.
2. 프로세스 및 부모 프로세스 조사
문제 어플리케이션 프로세스 확인:
ps -ef | grep openclaw | grep -v grep
출력 예시:
user 9249 1249 0 18:36 ? 00:00:00 openclaw
user 9256 9249 0 18:36 ? 00:00:37 openclaw-gateway
PID 9249의 환경 변수를 확인:
cat /proc/9249/environ | tr '\0' '\n' | grep -i proxy
다음과 같은 항목이 존재함을 확인:
HTTP_PROXY=http://10.0.0.9:7897/
HTTPS_PROXY=http://10.0.0.9:7897/
ALL_PROXY=socks://10.0.0.9:7897/
http_proxy=http://10.0.0.9:7897/
https_proxy=http://10.0.0.9:7897/
이는 쉘 레벨이 아닌 다른 계층에서 프록시가 주입되었음을 의미.
3. 부모 프로세스 추적
PID 1249의 정보 조회:
ps -fp 1249
출력 결과:
UID PID PPID C STIME TTY TIME CMD
user 1249 1 0 18:18 ? 00:00:00 /usr/lib/systemd/systemd --user
이로부터 openclaw 프로세스가 유저 수준 systemd에 의해 관리되고 있음이 확인됨.
4. 유저 서비스 상태 점검
유저 서비스 목록에서 관련 항목 검색:
systemctl --user list-units --type=service | grep -i openclaw
출력:
openclaw-gateway.service loaded active running OpenClaw Gateway (v2026.3.13)
또한 다음 명령어로 프록시 관련 설정 위치 탐색:
grep -RniE 'proxy|10\.0\.0\.9|7897' \
~/.config/systemd/user /etc/systemd/user /usr/lib/systemd/user \
~/.config/environment.d /etc/environment /etc/profile.d ~/.pam_environment \
2>/dev/null
결과에서 다음과 같은 파일 내부에 프록시 설정이 하드코딩되어 있음이 발견됨:
~/.config/systemd/user/openclaw-gateway.service
해당 파일의 일부 내용:
[Service]
...
Environment=HTTP_PROXY=http://10.0.0.9:7897/
Environment=HTTPS_PROXY=http://10.0.0.9:7897/
Environment=ALL_PROXY=socks://10.0.0.9:7897/
Environment=http_proxy=http://10.0.0.9:7897/
Environment=https_proxy=http://10.0.0.9:7897/
...
이러한 Environment= 지시어는 systemd 유저 서비스 정의 내부에 직접 포함되어 있으며, 재시작 시마다 자동으로 로드되므로 문제가 지속됨.
해결 방안
1. 서비스 파일 수정
문제의 환경 변수 선언 제거 또는 주석 처리:
vim ~/.config/systemd/user/openclaw-gateway.service
다음 줄들을 삭제 또는 주석 처리:
#Environment=HTTP_PROXY=http://10.0.0.9:7897/
#Environment=HTTPS_PROXY=http://10.0.0.9:7897/
#Environment=ALL_PROXY=socks://10.0.0.9:7897/
#Environment=http_proxy=http://10.0.0.9:7897/
#Environment=https_proxy=http://10.0.0.9:7897/
필요 시 로컬 주소는 프록시를 거치지 않도록 NO_PROXY만 유지 가능:
Environment=NO_PROXY=localhost,127.0.0.1,::1
2. 데몬 리로드 및 서비스 재시작
변경 사항 적용:
systemctl --user daemon-reload
systemctl --user restart openclaw-gateway
3. 심볼릭 링크 점검
다음 경로에 심볼릭 링크 존재 여부 확인:
ls -l ~/.config/systemd/user/default.target.wants/openclaw-gateway.service
일반적으로 원본 파일을 가리키는 링크이므로 별도 수정 불필요. 단, 독립된 파일 복사본일 경우 동일하게 수정 필요.
4. 백업 파일 처리
.bak 확장자 파일은 systemd에 의해 자동 로드되지 않으므로 안전하게 삭제 가능:
rm ~/.config/systemd/user/openclaw-gateway.service.bak
5. 최종 검증
프로세스 재시작 후 환경 변수 재확인:
cat /proc/$(pgrep -f openclaw-gateway | head -n1)/environ | tr '\0' '\n' | grep -i proxy
정상적으로 수정 완료 시 출력 없음 (또는 NO_PROXY만 존재)해야 함.
6. 게이트웨이 재시작 (옵션)
추가적으로 플러그인 자체의 재시작 명령어 실행 가능:
openclaw gateway restart