共享你的翻墙代理给局域网里的其他人&使用代理连接翻墙软件

2011年6月27日 | 分类: 翻墙相关 | 标签: ,

共享你的翻墙代理给局域网(就是通过路由器共享上网的情况)里的其他人,让他们不用安装软件也不用复杂设置只需设置代理即可翻墙,方便翻墙帐号一号多用,如果是无线路由器也方便手机、平板之类的移动设置翻墙。

使用代理连接翻墙软件有两个意义:一是对于公司内网用户(需要设置代理服务器才能连接外网),他们翻墙就需要使用代理连接翻墙软件;二是可以使用国外代理连接翻墙软件的方法使被墙的翻墙软件复活。

VPN翻墙

PPTP、L2TP/IPsec类型的VPN不能使用代理连接;

OpenVPN可以使用代理连接(需要代理支持CONNECT方法),运行软件右键选“Proxy Settings”在打开的界面里选“Manual Configuration”就可以设置代理了(http代理只能代理tcp连接的、socks代理可能也能代理udp连接的)。另外在其配置文件.ovpn里也可以配置代理,比如记事本打开.ovpn文件在最后添加

http-proxy-retry
http-proxy 165.193.102.220 80

(其中165.193.102.220换成你使用的代理地址,80是其端口)然后保存设置即可。

其他vpn看看它软件有没有代理服务器的设置吧,比如PacketiX VPNLoki VPN就可以设置代理,Hotspot Shield好像就不能。

共享你的VPN给局域网里的其他人可以通过本地开代理的方法实现

比如你可以使用3proxy来实现,修改它们的配置如下

nserver 8.8.8.8
nserver 8.8.4.4
nscache 65536
timeouts 1 5 30 60 180 1800 15 60
daemon
#service
#external ip
internal 0.0.0.0
proxy -n -a -p3128
#pidfile pid.log

修改配置后运行软件,如果防火墙提示请允许放行,然后局域网里的其他电脑就可以设置浏览器代理地址为你的内网IP比如192.168.0.3之类,端口3128(可以自行在配置文件里修改),就可以翻墙了(在其官网下载也可以在这里下载然后修改,3proxy还可以开socks代理和加代理认证等高级设置,使用ccproxy可以参考这里)。

SSH翻墙

MyEntunnel/putty、Tunnelier使用代理连接可以参考http://igfw.net/archives/925http://igfw.net/archives/1380

Tunnelier共享代理给局域网里的其他人可以参考http://igfw.net/archives/1310 (提供的是socks类型代理)

MyEntunnel/plink、Tunnelier如果不是使用动态端口转发而是转发本地端口到远程主机地址的端口转发,可以设置通道,MyEntunnel在配置文件里加入

ExecArguments=-N -ssh -2 -L 0.0.0.0:1984:localhost:3128

plink在参数里加入-L 0.0.0.0:1984:localhost:3128

Tunnelier把C2S Fwding里的改为Listen Interface里的127.0.0.1改为0.0.0.0(具体的转发设置参考这里

(其中3128为你ssh服务器上本地代理的监听端口,1984是你想设置的本地代理端口,提供的是http类型代理)

如果这些都不适合(有些ssh帐号禁止Tunnelier共享代理的设置),可以通过本地开代理的方法实现,以3proxy为例,修改配置

nscache 65536
timeouts 1 5 30 60 180 1800 15 60
daemon
#service
auth iponly
allow *
parent 1000 socks5+ 127.0.0.1 2012
proxy -n -a -p3128
#pidfile pid.log

(其中2012为你本机ssh代理端口,3128为你想开的代理端口)修改配置后运行软件,如果防火墙提示请允许放行,然后局域网里的其他电脑就可以设置浏览器 http/https代理地址为你的内网IP比如192.168.0.3之类,端口3128即可翻墙。

Stunnel翻墙

设置代理连接,配置文件修改为

client = yes
[https]
accept = 127.0.0.1:本机代理端口
connect=代理服务器地址:端口
protocol=connect
protocolHost=远程stunnel服务器地址:端口

共享代理只需把配置文件里的127.0.0.1改成0.0.0.0

GAE、PHP、ASP翻墙

GAppProxy、GoAgent、hyk-proxy、APJP、webpage-tunnel、phpsocks、ASProxyWing

共享代理 配置文件里有127.0.0.1的改成0.0.0.0即可

设置代理连接:

GAppProxy    local_proxy = user:passwd@host:port

GoAgent    proxy = http://username:password@10.204.159.31:80

hyk-proxy 设置里有,图形界面我就不细说了

APJP  APJP.properties文件最下面有APJP_HTTP_PROXY_SERVER和APJP_HTTPS_PROXY_SERVER配置

webpage-tunnel  图形界面,高级设置里有配置

ASProxyWing  图形界面,设置里有配置

phpsocks  没有代理设置的可以使用FreeCap和Proxifier PE软件强制其通过代理,方法参考http://igfw.net/archives/743http://igfw.net/archives/175 (Java程序需代理javaw进程)

Tor、自由门、逍遥游、无界、puff等

tor使用代理参考http://igfw.net/archives/3450,自由门的F3通道可以使用代理,puff免费版使用代理参考http://igfw.net/archives/666

自由门、逍遥游共享代理可以参考http://igfw.net/archives/1945,tor只需把torrc里的SocksListenAddress 127.0.0.1或把polipo.conf里的proxyAddress = “127.0.0.1”里的127.0.0.1改成0.0.0.0

无界、puff可以考虑开代理以3proxy为例,修改配置文件

nscache 65536
timeouts 1 5 30 60 180 1800 15 60
daemon
#service
auth iponly
allow *
parent 1000 http 127.0.0.1 1984
proxy -n -a -p3128
#pidfile pid.log

(其中1984为你本机http翻墙代理的端口,3128为你想开的代理端口)修改配置后运行软件,如果防火墙提示请允许放行,然后局域网里的其他电脑就可以设置浏览器 http/https代理地址为你的内网IP比如192.168.0.3之类,端口3128即可翻墙。

东西很杂写的很乱,不明白的可以留言。总结下就是使用代理连接先看看其软件里有没有设置方法,如果没有就考虑借助FreeCap和Proxifier PE等第三方软件实现;共享代理给局域网里(非局域网勿试)的其他人就是把原来监听的127.0.0.1改为监听0.0.0.0,如果配置文件里没有就考虑使用第三方软件Privoxy、Polipo、3proxy、ccproxy之类的代理软件开代理实现(局域网里的其他电脑就可以设置浏览器代理地址为你的内网IP比如192.168.0.3之类,端口根据配置文件而定;不过要注意安全,必要时设置代理认证)。

本文原始地址:http://igfw.net/archives/3184

  1. 能不能解决https网站有证书问题
    2011年6月28日22:16

    GOAGENT代理设置成功!感谢!(1)能不能解决IPHONE 的https网站的证书问题?(2)怎么设置代理认证?就是设置用户名和密码?感谢!

    • iGFW
      2011年6月29日09:02

      GOAGENT由于其GAE本身问题不能真正解决https证书问题,电脑上也是通过导入伪造证书来解决的,如果你IPHONE浏览器也能导入其证书可能也能解决证书问题。
      GOAGENT默认好像没有配置代理认证,不过我记得以前wallproxy可以认证。
      c、实现共享上网。
      例如某单位以如下方式上网:为员工分配一个IP和一个代理服务器的用户名密码,只有当IP与用户名密码匹配,员工才能通过指定的代理服务器上网。某办公室有3名员工,却只分配了1个IP和账号,当其中一名员工使用该IP和账号时,另外两人必须等待。
      1、其实第一个人使用WallProxy如下配置,另两个人将代理设为分配的IP则可实现都能上网。
      LISTEN_ADDR = (”, 8086)
      # 假设代理服务器是192.168.0.254:8080,分配的用户名是11111,密码是22222
      DIRECT_PROXY = [{‘http’:’11111:22222@192.168.0.254:8080′}]
      def FindProxyForURL(remote, url, method, headers):
      return DIRECT_PROXY[0]
      2、不过隔壁办公室的人居然在偷偷使用这个代理,能否为代理加上密码呢?当然可以,修改一下即可:
      LISTEN_ADDR = (”, 8086)
      # 设置用户名密码为123456、123456
      USER_PWD = [‘123456:123456’]
      import base64
      USER_PWD = [‘Basic ‘+base64.b64encode(i) for i in USER_PWD]
      del base64
      DIRECT_PROXY = [{‘http’:’11111:22222@192.168.0.254:8080′}]
      def FindProxyForURL(remote, url, method, headers):
      # 对非本机开启密码
      if remote != ‘127.0.0.1’:
      auth = headers.get(‘proxy-authorization’)
      if auth != USER_PWD[0]:
      return (407, None, ‘Proxy-Authenticate: Basic Realm=”WallProxy Authenticate”\r\n\r\n’)
      return DIRECT_PROXY[0]
      3、只有一个密码啊,能不能像单位分配的账号那样一个IP对应一个用户名密码呢?当然可以,再修改一下:
      LISTEN_ADDR = (”, 8086)
      # 设置三个账号
      USER_PWD = [‘123456:123456’, ‘223456:654322’, ‘32548:54554’]
      import base64
      USER_PWD = [‘Basic ‘+base64.b64encode(i) for i in USER_PWD]
      del base64
      DIRECT_PROXY = [{‘http’:’11111:22222@192.168.0.254:8080′}]
      def FindProxyForURL(remote, url, method, headers):
      # 对非本机开启密码
      if remote != ‘127.0.0.1’:
      auth = headers.get(‘proxy-authorization’)
      bAuth = False
      # 192.168.1.1使用第一个账号,192.168.1.2使用第二个账号……
      if (remote==’192.168.1.1′ and auth==USER_PWD[0]) or\
      (remote==’192.168.1.2′ and auth==USER_PWD[1]) or\
      (remote==’192.168.1.3′ and auth==USER_PWD[2]):
      bAuth = True
      if not bAuth:
      return (407, None, ‘Proxy-Authenticate: Basic Realm=”WallProxy Authenticate”\r\n\r\n’)
      return DIRECT_PROXY[0]
      4、用密码太麻烦了,能不能直接搞个IP黑名单或白名单呢?因为Python的灵活,当然可以:
      LISTEN_ADDR = (”, 8086)
      # 设置IP白名单
      ALLOW_IP = (‘127.0.0.1’, ‘192.168.1.1’, ‘192.168.1.2’, ‘192.168.1.3’)
      DIRECT_PROXY = [{‘http’:’11111:22222@192.168.0.254:8080′}]
      def FindProxyForURL(remote, url, method, headers):
      # 如果IP不在白名单中,就拒绝代理
      if remote not in ALLOW_IP:
      return (403,)
      return DIRECT_PROXY[0]
      另外使用3proxy可以代理认证,可以使用IP和端口认证,也可以使用用户名和密码认证,具体你可以搜索下。

  2. 匿名
    2011年6月28日02:28

    GAE方式能否说明一下

    路由器上的其他移动设备,比如手机B(局域网ip192.168.1.6),能不能通过运行GAE软件的主机A(192.168.1.7),来上网?

    请赐教

    • iGFW
      2011年6月28日07:56

      可以的,文中已经说了。
      比如你使用GoAgent,可以把proxy.ini中的ip = 127.0.0.1改为ip = 0.0.0.0
      然后你手机上设置使用代理192.168.1.7端口8087即可。(不过https网站有证书问题)

  3. 匿名
    2011年6月28日00:12

    是否可以在mac平台上开共享给未破解的ipad上使用ssh代理

  4. 匿名
    2011年6月27日23:36

    mac 平台的有没有办法?如果有,能否提供方法,最好是ssh方式的

    • iGFW
      2011年6月28日07:49

      思路都是一样的,不过我没有mac系统不能给你详细解答。
      在终端输入 ssh -N -D 7070 -p 22 -g username@yourserver.com
      ssh 加上 -g 可使局域网内其它机器使用我的机器做代理. 以我的情况为例:我在一个局域网内的 ip 为 192.168.1.16 , 当我联上服务器之后,我就可以使用 localhost:7070 做代理,同时我的局域网内的其它 ip 为 192.168.1.* 的机器,就可以用代理 192.168.1.16:7070 来穿墙啦。
      这个是Linux下的办法,不知道mac下行不行。