V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
bsbgong
V2EX  ›  程序员

求问:做一个 Web 访问跳板

  •  1
     
  •   bsbgong · 2014-06-12 16:59:21 +08:00 · 6199 次点击
    这是一个创建于 3598 天前的主题,其中的信息可能已经有所发展或是发生改变。
    背景:
    1. 公司网关封锁了一些网站,有一个access block list
    2. 无法在电脑上安装或运行常用的代理程序(这违反公司规定)
    3. 在公司可以正常访问我的VPS

    目标:
    正常访问被公司封锁的网站

    手段:
    在我的VPS上做一个访问跳板:接收url输入,返回能正常访问的内容。

    =========================

    以上是我刚刚想到的,还不明确如何实现,或者是否有其他手段解决公司封锁的问题。

    希望大家能帮忙给点建议,谢谢!
    第 1 条附言  ·  2014-06-13 13:16:57 +08:00
    抱歉忘记提两个背景:
    1. VPS是国外的
    2. 用公司电脑上的浏览器访问外网时,必须先把浏览器的HTTP代理设置为公司的代理。所以无法再设置浏览器的本地HTTP代理了。

    也就是对于HTTP和HTTPS:浏览器 -----> 公司HTP代理 -----> 公司block site list filter --(我想着在这里实现跳板)--> 外网
    对于SSH的端口,不是很好用。我干活时用的git就只能通过https提交,不能用SSH。
    能通过SSH连VPS,但不稳定,有时候连不上。
    28 条回复    2014-06-14 16:08:31 +08:00
    xxr3376
        1
    xxr3376  
       2014-06-12 17:09:13 +08:00
    按照翻墙的原理,搞一个SOCKS或者HTTP代理就好了
    bsbgong
        2
    bsbgong  
    OP
       2014-06-12 17:14:35 +08:00
    @xxr3376
    能具体说一下实现方案么?
    xxr3376
        3
    xxr3376  
       2014-06-12 17:19:44 +08:00
    @bsbgong
    两种方法:

    1.自己VPS上开一个Shadowsocks server,在公司电脑上用client。和翻墙一个道理。
    2.当然最方便的还是SSH开个隧道就好了,自动有Socks代理: http://www.groad.net/bbs/thread-7495-1-1.html

    如果你的电脑是win,可以考虑用putty做SSH隧道或用shadowsocks,linux直接ssh就好了。。
    xxr3376
        4
    xxr3376  
       2014-06-12 17:20:11 +08:00
    @bsbgong 如果是国外的VPS就放弃直接SSH隧道吧。。
    palytoxin
        5
    palytoxin  
       2014-06-12 17:20:26 +08:00 via iPhone
    挂ssh
    bsbgong
        6
    bsbgong  
    OP
       2014-06-12 17:28:10 +08:00
    @xxr3376
    @palytoxin

    抱歉忘记提两个背景:
    1. VPS是国外的
    2. 用公司电脑上的浏览器访问外网时,必须先把浏览器的HTTP代理设置为公司的代理。所以无法再设置浏览器的本地HTTP代理了。

    也就是:浏览器 -----> 公司HTP代理 -----> 公司block site list filter --(我想着在这里实现跳板)--> 外网

    这也是为什么我想着在VPS上做一个web页面来接收url输入。但考虑到CSS/JS/image等资源的加载,好像有些我不懂的点,想向大家请教。
    Liang
        7
    Liang  
       2014-06-12 17:32:05 +08:00
    上外网步骤:
    辞职->换公司
    bsbgong
        8
    bsbgong  
    OP
       2014-06-12 17:33:41 +08:00
    @Liang
    Thanks but I love this company.
    zk8802
        9
    zk8802  
       2014-06-12 17:34:15 +08:00 via iPhone
    直接上 Glype 就可以解决问题。或者其它任意网页代理都可以。
    bsbgong
        10
    bsbgong  
    OP
       2014-06-12 17:38:55 +08:00
    @zk8802
    看上去正好是我需要的,晚上回去试试
    多谢!
    ericls
        11
    ericls  
       2014-06-12 17:44:59 +08:00
    无法在电脑上安装或运行常用的代理程序
    这是啥意思?
    代理程序需要安装么?
    unfurl
        12
    unfurl  
       2014-06-12 17:59:52 +08:00
    vps上开nginx,做个正向代理即可
    bsbgong
        13
    bsbgong  
    OP
       2014-06-12 18:39:52 +08:00
    @ericls
    比如shadowsocks的客户端程序
    说错了,无需安装,需要运行。
    这也是违反公司规定的。
    d0o0g
        14
    d0o0g  
       2014-06-12 18:50:52 +08:00
    你们公司肯定也把部分端口封了,比如22。
    如果自己在vps上搭网页代理算是比较可行的方案,不过得考虑一下认证的问题,不能公开让别人用你的vps代理吧。
    allan1st
        15
    allan1st  
       2014-06-12 20:01:18 +08:00
    简单好用的方法:
    ssh -fCN -D 8888 [email protected]
    Chrome 装一个 proxy Switchysharp
    代理 localhost 端口 8888
    然后自定几个 rules 智能切换
    oott123
        16
    oott123  
       2014-06-12 21:32:51 +08:00 via Android
    有个叫 Proxifier 的软件似乎支持代理链。
    ericls
        17
    ericls  
       2014-06-13 00:53:06 +08:00
    @bsbgong 浏览器不是本来就能设置代理么 不能运行浏览器?
    各个系统不是自带vpn拨号么 不能装系统?
    windows下不能用putty
    linux和mac下还可以ssh嘛
    palytoxin
        18
    palytoxin  
       2014-06-13 01:11:16 +08:00 via iPhone
    @bsbgong 是Windows不,是的话Bitvise SSH Client可以直接挂代理连ssh然后本地开代理端口。简直就是翻墙。。
    palytoxin
        19
    palytoxin  
       2014-06-13 01:18:08 +08:00 via iPhone
    @bsbgong http://daniel.haxx.se/docs/sshproxy.html
    呃,代理程序不能运行是什么意思。ssh不能用?
    ted2011
        20
    ted2011  
       2014-06-13 12:08:16 +08:00
    请网管吃饭...
    bsbgong
        21
    bsbgong  
    OP
       2014-06-13 12:58:42 +08:00
    @ericls
    可能你没有在这种公司内网环境下呆过吧,对我描述的网络环境不清楚。
    平时公司电脑访问网页时就是已经设置过浏览器代理的了,这个是公司的HTTP代理,所以我无法再设置成我自己的HTTP代理了,否则根本走不到外网。
    VPN这种走底层的就更不用提了,根本就连不上。
    我的网络请求始终是要通过公司的路由器和交换机出去的,它在那里做了设置,你怎么折腾都没用。
    只能在它“允许”的范围内,比如把一个正常HTTP 80访问的网页作为代理,再访问其他网页。
    bsbgong
        22
    bsbgong  
    OP
       2014-06-13 13:02:04 +08:00
    @d0o0g
    恩,上面一位大哥提到的Glype就不错
    多谢提醒,我会做个监管,如果有需要的话会加个认证。
    bsbgong
        23
    bsbgong  
    OP
       2014-06-13 13:03:46 +08:00
    @palytoxin
    多谢建议。
    这里ssh不通,我github干活都是走https。
    billlee
        24
    billlee  
       2014-06-13 13:34:21 +08:00
    服务器把 sshd 监听到 443 上,然后在客户端的 .ssh/config 里写

    Host 名称
    HostName 服务器主机名或IP
    Port 443
    ProxyCommand nc -X connect -x 代理地址:端口 %h %p

    只要 HTTP 代理允许 CONNECT 到 443, 应该就能通过代理使用 ssh 了
    bsbgong
        25
    bsbgong  
    OP
       2014-06-13 17:18:07 +08:00
    @billlee
    对的,你这个方法我现在在用,我们的开发时用的gerrit就需要在客户端做这个配置

    周末我弄弄看好不好使,多谢!
    RangerWolf
        26
    RangerWolf  
       2014-06-13 17:34:34 +08:00
    关注 等答案
    pythonee
        27
    pythonee  
       2014-06-13 21:05:26 +08:00
    @xxr3376 他不是说不能安装代理程序的吗
    smileawei
        28
    smileawei  
       2014-06-14 16:08:31 +08:00
    @oott123 是的 这个支持上层代理。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4957 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 03:51 · PVG 11:51 · LAX 20:51 · JFK 23:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.