Linux下终端代理设置
在无法翻越的伟大的墙面前,很多时候我们需要用到梯子去看外面的世界,浏览器爬梯子比较简单,而相对于原始的终端面对先进的梯子倒是有点不知所措。
以前如果要在终端里面爬梯子,我一般是生成一个全局的代理规则,把代理直接加到网络出入口上,这样不管是浏览器还是终端,实际可以直接认为伟大的墙已经隐身,直接无感的透传。当然还有一种更加无感的方式,那就是将梯子架在路由上,家里的路由接管所有网络,所以路由上搞个梯子,那么所有连到路由上的设备就都可以访问墙外的风景了。
不过最近在公司里面用的时候,因为策略和权限的问题,我没有办法去搞这些全局的梯子,所以只能用其他一些让终端走代理的方法。
最为简单直接的方法就是定义http_proxy
环境变量,这种方式最为简单直接,但是只对当前终端有效,当终端退出立即失效。
# Normal
export http_proxy=http://proxyAddress:port
# SS proxy
export ALL_PROXY=socks5://127.0.0.1:1080
当然你可以把上面的代码定义在bashrc或者.zshrc
里面,这样当每次打开终端都可以直接配置好代理,需要说明的是默认情况下这种方式对于sudo命令是无效的,因为sudo命令相当于是root用户执行命令,而上面配置的环境变量是针对当前用户的,所以切换到root
用户之后这些环境变量失效,代理的配置也就无效了。不过,我们可以通过visudo
修改配置,让系统运行sudo
命令的时候保留代理环境变量:
# run visudo to open configuration file
# find Defaults env_reset
Defaults env_reset
# add following exceptions
Defaults env_keep = "http_proxy ftp_proxy"
这样sudo
命令也可以走代理了。
另外,如果代理需要用户名和密码的认证,我们也可以将用户名及密码信息一起写到环境变量里面,比如:
http_proxy=http://userName:password@proxyAddress:port
最后感谢IT给我搞了一个公用用户的账号和密码,这样我就不用担心我的流量太多或者连入公司的设备太多了,因为反正也不是我名字下面的呀,哈哈。
最后更新于 2018-06-23 06:19:42 并被添加「」标签,已有 2601 位童鞋阅读过。
本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。