Answers:
大多数Linux命令,访问互联网看在HTTP_PROXY
,FTP_PROXY
和SOCKS_SERVER
为代理信息的环境变量。因此,要执行类似您的示例的操作,只需运行:
export SOCKS_SERVER=1.2.3.4:8000
wget http://superuser.com/q/262956/66003
对于语法HTTP_PROXY
和FTP_PROXY
略有不同:
export HTTP_PROXY=http://1.2.3.4:3128/
export FTP_PROXY=ftp://1.2.3.4:25/
Ubuntu代理设置中随附的默认GNOME桌面环境具有“ 应用系统范围”按钮,该按钮将自动为您设置这些环境变量。否则,您可以将这些export
行添加到~/.bashrc
文件中,以使它们在每次登录时生效。
不幸的是,wget
根本不支持SOCKS。您可以使用curl
Ubuntu随附的来完成许多工作wget
。不幸的是,它不会进行检查SOCKS_SERVER
,而会进行检查HTTP_PROXY
(也是如此wget
)。要使用curl使用SOCKS5服务器下载该页面(使用该服务器执行DNS解析)并将其另存为superuser.html
,请运行以下命令:
curl --socks5-hostname 1.2.3.4:8000 http://superuser.com/q/262956/66003 > superuser.html
如果要curl
始终使用该SOCKS代理,则可以创建一个shell别名。只需将以下行添加到您的~/.bashrc
:
alias curl='curl --socks5-hostname 1.2.3.4:8000'
您将需要重新启动终端或运行该行,就像这是使更改生效的命令一样。
SOCKS_SERVER
,尽管许多受欢迎的程序都可以读取ssh
。而且,wget
似乎根本不支持SOCKS。但是,您可以使用curl
。我将在我的回答中添加信息。
youtube-dl
不会读取SOCKS_SERVER
,而是读取http_proxy
。而且它不支持袜子代理。嗯...程序列表及其受支持的代理环境变量可能会很有帮助。
尝试代理链。
可以使用进行安装apt-get
。然后,您需要在以下任一位置创建配置文件
1) ./proxychains.conf
2) $(HOME)/.proxychains/proxychains.conf
3) /etc/proxychains.conf **
并且您将能够调用其他命令,例如proxychains wget google.com
-连接将通过代理。您可以指定一次使用或以随机顺序使用的多个代理。
例如:
➜ ssh -ND 4000 sockshost &
[1] 3446
➜ wget whoer.net -q -O- | grep remote_addr
89.71.*.*
➜ cat proxychains.conf
[ProxyList]
socks5 127.0.0.1 4000
➜ proxychains wget whoer.net -q -O- | grep remote_addr
|D-chain|-<>-127.0.0.1:4000-<><>-95.211.121.18:80-<><>-OK
78.98.*.*
我剥离了一些HTML标记和IP,但是您可以看到使用了代理并且IP地址确实发生了变化。
wget不支持袜子,curl如Patches所说:
curl --socks5-hostname 1.2.3.4:8000 /superuser//q/262956/66003
如果需要wget,可以安装tsocks
。
安装sudo aptitude install tsocks
和设置:
$ sudo vim /etc/tsocks.conf
server = 1.2.3.4
server_type = 5
server_port = 8000
用法:
tsocks wget /superuser//q/262956/66003
wget
过SOCKS_SERVER
,但是似乎没有用。wget
仅从读取代理设置/etc/wgetrc
。我也尝试links
过,可以指定links -socks-proxy 127.0.0.1:7878 <url>
,但是使用失败export SOCKS_SERVER=...; links <url>
。