V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
Imivan
V2EX  ›  Linux

Raspberry Pi技术上求救,有铜币啊银币之类的奖哦

  •  
  •   Imivan · 2013-09-02 19:00:24 +08:00 · 5825 次点击
    这是一个创建于 3860 天前的主题,其中的信息可能已经有所发展或是发生改变。
    嗯,大家好。我呢,刚买了一块Pi。

    我家里用的是长城小区联通宽带,好像所有小区公网IP都是同一个(最起码我家的所有电脑公网ip都是同一个)。我呢在路由器管理那里设置了端口映射,但是没效果,我就是想在外网访问树莓派。问了一个群。群里回答是没权限改,不能生效。

    还有人给出的解决是用vps做ssh隧道来连接树莓派,求救的说。至于奖励嘛,就看谁的方案最简单适合啦。奖励你们自己订,当然我只有27银76铜的说,不要太高。^_^
    30 条回复    1970-01-01 08:00:00 +08:00
    cj1324
        1
    cj1324  
       2013-09-02 19:14:51 +08:00 via Android
    需要独立IP 联通不分配的话 自己买VPS
    kennedy32
        2
    kennedy32  
       2013-09-02 19:15:00 +08:00 via Android
    花生壳
    Imivan
        3
    Imivan  
    OP
       2013-09-02 19:18:38 +08:00
    @kennedy32 他们说没有公网IP花生壳也没用
    @cj1324 嗯?买vps之后呢?怎么建立外网和vps再和pi之间的连接?
    magicbrighter
        4
    magicbrighter  
       2013-09-02 19:42:32 +08:00
    Google Chrome's Remote Desktop plugin
    gamexg
        5
    gamexg  
       2013-09-02 19:49:57 +08:00
    http://www.ip138.com/ 这里显示的ip和你的路由器上面的ip是一样的吗?
    Imivan
        6
    Imivan  
    OP
       2013-09-02 19:50:06 +08:00
    @magicbrighter 问题是我外网根本不能访问家里的pi,都ping不通
    hgzz
        7
    hgzz  
       2013-09-02 19:57:19 +08:00
    可能pi防火墙拦截了
    Reset
        8
    Reset  
       2013-09-02 19:57:44 +08:00   ❤️ 1
    @Imivan
    没有公网IP就只能想办法利用反向链接
    因为现在电信ADSL好多都是内网地址了,所以我跟你情况差不多
    Tinet
        9
    Tinet  
       2013-09-02 20:00:41 +08:00   ❤️ 1
    @Imivan 你家里是一个局域网,从外网当然不能访问到啦,如果你们小区的公网IP是同一个的话,说明你们小区是通过交换机分出来的。正如1楼所说,你需要一个独立IP,或者自己买一个VPS,至于你提到的外网和VPS和PI之间的连接问题,我是这样理解的(不知道是否正确),很明显外网可以访问到VPS吧,而你处于内网的PI也能访问到VPS吧,那么此时VPS就相当于一个中介了(和PI一直建立一条连接),可以把外网用户的请求转到你的PI上,从而实现了间接的外网访问PI。
    magicbrighter
        10
    magicbrighter  
       2013-09-02 20:09:07 +08:00   ❤️ 1
    服务器只是做udp打洞,最终协议还是通过机器对机器的udp,需要借助公网服务器反向隧道或者第三方服务建立连接
    zxp
        11
    zxp  
       2013-09-02 20:22:52 +08:00   ❤️ 1
    openvpn + vps

    一般vps可购买多个IP,可将vps多余的ip地址通过nat映射到家里的机器,或通过tap设备桥接直接给家里的机器分配VPS上的公网IP。
    roricon
        12
    roricon  
       2013-09-02 20:32:39 +08:00   ❤️ 1
    没有公网IP没办法控制网关做端口映射,唯一可行的办法就是利用外网有独立IP的机器做vpn。用PI连接有公网IP的机器,获取一个虚拟网段的地址。用你想访问PI的机器也拨到这个虚拟网络内。需要的话改下路由表。嗯,就是这么简单
    varrily
        13
    varrily  
       2013-09-02 20:34:28 +08:00   ❤️ 1
    1、换有独立ip的电信或联通adsl
    2、vps/vpn可行,但速度也是奇慢无比。别折腾
    3、换个玩法,不做远控,只做监控
    carbon
        14
    carbon  
       2013-09-02 21:02:03 +08:00   ❤️ 1
    干啥用啊,提供网页等广泛服务的话没内网映射权限是不用想了,没戏。
    自己用的话,比如存个资料,开个小ssh啥的,可以用比如hamachi,softenther vpn。这样可以组虚拟网。
    carbon
        15
    carbon  
       2013-09-02 21:05:25 +08:00   ❤️ 1
    或者,再找找类似http://code.google.com/p/udponnat/wiki/What_is_UDPonNAT_CN 的东西,只是有些没arm版本,例如teamviewer,所以暂时装不上。
    Imivan
        16
    Imivan  
    OP
       2013-09-02 21:41:27 +08:00
    恩,我现在的首选是用vps组建和外网的中介。但是你们说的用vps组建的话速度会奇慢无比,这个我就有点郁闷了。本来我是准备建个小型lnmp,放个php的。但是速度问题有点伤脑筋,郁闷啊。
    Imivan
        17
    Imivan  
    OP
       2013-09-02 21:43:13 +08:00
    谢谢大家了,那就给我用vps组建中介的教程吧。谢谢
    spoony
        18
    spoony  
       2013-09-02 21:50:38 +08:00
    甭折腾了,果断换电信宽带独立分配IP
    Imivan
        19
    Imivan  
    OP
       2013-09-02 21:54:11 +08:00
    @spoony 没办法,住别人家里。用的是联通,以后自己租房子的时候再换网线吧
    lifanxi
        20
    lifanxi  
       2013-09-02 22:16:06 +08:00   ❤️ 1
    用VPS加SSH是最简单的做法了,几乎没什么需要配置的,有了SSH通道其它的都好说了。

    可以参考:
    http://blog.csdn.net/xuyaqun/article/details/6036783
    http://mirko.windhoff.net/how_to/make_a_reverse_ssh_tunnel
    Imivan
        21
    Imivan  
    OP
       2013-09-02 22:43:54 +08:00
    恩,不过用vps挺麻烦的。还是慢慢折腾pi,以后换网线吧。
    xujialiang
        22
    xujialiang  
       2013-09-02 22:47:08 +08:00
    没有一个独立IP 那就只能用穿透的方法。用花生壳的内网穿透吧。不过收费的哦
    gluttony
        23
    gluttony  
       2013-09-02 23:24:27 +08:00   ❤️ 1
    1. 外币信用卡申请一个AWS Free Tier。
    2. 客户端Macbook Pro,AWS,Pi间创建SSH公私钥实现免密码登录。
    3. Pi上.ssh目录里的config文件

    Host *
    AddressFamily inet
    Compression yes
    CompressionLevel 9
    ServerAliveInterval 30
    Host box
    User nil
    Hostname xx.xx.xx.xx
    IdentityFile ~/.ssh/id_rsa

    4. Pi上创建reverse_ssh_tunnel,并chmod +x reverse_ssh_tunnel

    #!/bin/sh

    # This is the username on your Pi who has public key authentication setup at the middleman
    USER_TO_SSH_IN_AS=pi

    # This is the username and hostname/IP address for the middleman (username on AWS)
    MIDDLEMAN_SERVER_AND_USERNAME=nil

    # Port that the middleman will listen on (use this value as the -p argument when sshing)
    PORT_MIDDLEMAN_WILL_LISTEN_ON=10888

    # Connection monitoring port
    AUTOSSH_PORT=20888

    su -c "autossh -M${AUTOSSH_PORT} -f -q -N -R '*:${PORT_MIDDLEMAN_WILL_LISTEN_ON}:localhost:22' ${MIDDLEMAN_SERVER_AND_USERNAME} -oLogLevel=error -oUserKnownHostsFile=/dev/null -oStrictHostKeyChecking=no" ${USER_TO_SSH_IN_AS}

    我把reverse_ssh_tunnel放在了/etc/network/if-up.d/目录下,这样网络接通时会自动执行该脚本里的autossh。

    5. AWS上.ssh目录里的config文件
    Host *
    AddressFamily inet
    Compression yes
    CompressionLevel 9
    ServerAliveInterval 30
    Host pi
    User pi
    Hostname 127.0.0.1
    Port 10888
    IdentityFile ~/.ssh/id_dsa

    6. 客户端Macbook Pro上先 ssh aws 连接到AWS服务器上,再 ssh pi 就可以反向连接到Raspberry Pi上了。嫌麻烦可以再配一下自动连接aws中间跳板。
    Imivan
        24
    Imivan  
    OP
       2013-09-02 23:29:00 +08:00
    @gluttony 好高级
    gluttony
        25
    gluttony  
       2013-09-02 23:33:46 +08:00
    @Imivan 呃,第4步Pi上要先安装 autossh (sudo apt-get install autossh)。
    shierji
        26
    shierji  
       2013-09-03 00:03:39 +08:00 via Android
    建议你直接换宽带
    ety001
        27
    ety001  
       2013-09-03 01:24:10 +08:00   ❤️ 1
    istef
        28
    istef  
       2013-09-03 08:58:27 +08:00   ❤️ 1
    建议你先拿台电脑开个类似的服务试试能不能访问,记得做好端口映射。很多 ISP 会过滤常用端口(比如 80)。楼上 N 多人说的 VPN+SSH tunnel 是很好的方案。
    Imivan
        29
    Imivan  
    OP
       2013-09-03 09:16:54 +08:00
    谢谢大家了
    pscl
        30
    pscl  
       2013-09-03 20:26:39 +08:00
    1. 路由器自带花生壳程序,这个一般在路由器设置里面有,输入你申请的花生壳账号和密码就可以了。
    2. 路由器端口转发
    3. 访问花生壳那域名即可。

    我这边是四川电信,pi放家里,可以在公司ssh回去,挂BT之类的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3360 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 13:15 · PVG 21:15 · LAX 06:15 · JFK 09:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.