Raspberry Pi技术上求救,有铜币啊银币之类的奖哦 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
Imivan
V2EX    Linux

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

  Imivan 2013-09-02 19:00:24 +08:00 6419 次点击
这是一个创建于 4424 天前的主题,其中的信息可能已经有所发展或是发生改变。
嗯,大家好。我呢,刚买了一块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
建议你直接换宽带
/div>
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     Solana     3297 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 36ms UTC 11:29 PVG 19:29 LAX 04:29 JFK 07:29
Do have faith in what you're doing.