- Sources: 5个新文档 - Concepts: ProxyChains, SOCKS5代理, Docker Daemon代理 - Index: 更新至 Batch 9 - 累计 sources: 108/182
52 lines
2.3 KiB
Markdown
52 lines
2.3 KiB
Markdown
---
|
||
title: "Ubuntu Server 科学上网配置指南"
|
||
type: source
|
||
tags: [Ubuntu, 科学上网, V2Ray, ProxyChains, Docker, 代理]
|
||
date: 2025-12-29
|
||
---
|
||
|
||
## Source File
|
||
- [[raw/Home Office/Ubuntu Server科学上网.md]]
|
||
|
||
## Summary
|
||
- 核心主题:Ubuntu Server 环境下配置科学上网的完整方案
|
||
- 问题域:终端命令/Git/Docker 守护进程/容器内应用如何走代理
|
||
- 方法/机制:分层代理架构——ProxyChains(临时命令)、Git 全局配置(Git 专设)、systemd Docker 代理(镜像拉取)、~/.docker/config.json(容器内应用)
|
||
- 结论/价值:不同场景用不同方案,不可混用;Daemon 层面走 systemd,用户层面走环境变量
|
||
|
||
## Key Claims
|
||
|
||
### ProxyChains(终端命令级)
|
||
- 修改 `/etc/proxychains4.conf` 添加 `socks5 127.0.0.1 10808`
|
||
- 任何命令前加 `proxychains4` 前缀即可穿代理:`proxychains4 curl https://google.com`
|
||
|
||
### Git 代理配置
|
||
- 设置全局:`git config --global http.proxy 'socks5://127.0.0.1:10808'`
|
||
- Docker 守护进程不走用户环境变量,必须通过 systemd 配置
|
||
|
||
### Docker Pull 代理(Daemon 级)
|
||
- 创建 `/etc/systemd/system/docker.service.d/http-proxy.conf`
|
||
- 添加 `HTTP_PROXY/HTTPS_PROXY/NO_PROXY` 环境变量
|
||
- 必须执行 `systemctl daemon-reload && systemctl restart docker`
|
||
- 验证:`docker info | grep -i proxy`
|
||
|
||
### Docker 容器内代理(应用级)
|
||
- 方案 A(推荐 17.07+):`~/.docker/config.json` 添加 `proxies.default`
|
||
- 方案 B:docker-compose.yml 环境变量 `ALL_PROXY=socks5://172.24.0.1:10808`
|
||
- 容器内获取宿主机 IP:`docker exec <container> ip route | awk '/default/ {print $3}'`
|
||
|
||
## Key Concepts
|
||
- [[ProxyChains]]:终端命令强制走 SOCKS5 代理工具
|
||
- [[SOCKS5 代理]]:支持本地 DNS 解析(socks5h://)的代理协议
|
||
- [[Docker Daemon 代理]]:Docker 守护进程级代理配置,通过 systemd 环境变量注入
|
||
- [[Docker 容器内代理]]:容器应用级代理,通过 ~/.docker/config.json 或 docker-compose environment
|
||
|
||
## Key Entities
|
||
- [[V2RayN]]:SOCKS5/HTTP 代理客户端(运行在宿主机)
|
||
- [[Ubuntu Server]]:Linux 服务器操作系统
|
||
|
||
## Connections
|
||
- [[V2RayN]] ← 提供代理 ← [[SOCKS5 代理]]
|
||
- [[ProxyChains]] ← 转发至 ← [[SOCKS5 代理]]
|
||
- [[Docker Daemon 代理]] ← 配置 ← [[Ubuntu Server]]
|