pacman & yum 代理

学校用的是那个人见人骂的 drcom 登陆认证系统,对于 Linux 系统来说尤为不便。直到有一天才想到,人家要要国外的服务器来 ssh 番羽墙,那我国内的服务器不同样可以做个转发来上网么。

操作很简单:

$ ssh -qTfnN -D 7000 [email protected]

-D 建立动态 Tunnel,监听在本地 7000 端口
-q  安静模式
-f  在后台运行
-n  将 stdio 重定向到 /dev/null,与 -f 配合使用
-N  不运行远程程序,即通知 sshd 不运行设定的 shell
-T 不分配 tty

以 firefox 浏览器为例:Edit->Preferences->Advanced->Network->Settings->Manual proxy configuration,将 SOCKS Host 修改为 127.0.0.1,Port 修改为 7000 即可。

但是问题出现了,这个只能满足我日常浏览器的上网,当我要在终端下执行诸如 pacman -S package 时就失效了。同样是有办法解决的,利用 curl 来解决。

# vi /etc/pacman.conf
XferCommand = /usr/bin/curl –socks5 localhost:7000  %u > %o

上面的是利用 ssh 也就是 socks5 来解决的,还有一种比较通用的方法是在服务器上架设一个 squid 的代理,如下修改:

# vi /etc/pacman.conf
XferCommand = /usr/bin/wget –proxy-user=用户名 –proxy-password=密码 -c %o %u

#LogFile      = /var/log/pacman.log
下面记录的是不需要更新的文件
#NoUpgrade    = etc/passwd etc/group etc/shadow etc/sudoers
#NoUpgrade    = etc/fstab etc/raidtab etc/ld.so.conf
#NoUpgrade    = etc/rc.conf etc/rc.local
#NoUpgrade    = etc/modprobe.conf etc/modules.conf
#NoUpgrade    = etc/lilo.conf boot/grub/menu.lst
#HoldPkg      = pacman glibc

# vi /etc/wgetrc
http_proxy = http://ip:port/

对于 yum 机制来说

# vi /etc/yum.conf
#proxy=http://ip:port/
proxy=http://username:[email protected]_server_ip:port/
 

  • Mucid

    觉得yum远没dpkg稳当……