请教一个关于 frp 的问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
muhairen
V2EX    程序员

请教一个关于 frp 的问题

  •  
  •   muhairen 2020-07-08 18:24:04 +08:00 7521 次点击
    这是一个创建于 1997 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有一台阿里云 ubuntu 系统的跳板机,能正常连接内网的 x86 ubuntu 设备,最近新增了 arm 的树莓派和 jetson,frpc 能正常连接 frps,但是在跳板机上 ssh 不能正常连接,frps 用的是同一个端口,如果新增 frps,则会显示找不到路由,即使在阿里云里面已经开启端口并关闭防火墙也不行

    34 条回复    2020-07-10 08:05:05 +08:00
    StarUDream
        1
    StarUDream  
       2020-07-08 20:26:41 +08:00 via Android
    一大段话不如贴个 *.ini ?
    greatbody
        2
    greatbody  
       2020-07-08 20:39:47 +08:00
    别用 frp 了,直接电信客服要一个公网 IP,啥事都解决了。
    windyland
        3
    windyland  
       2020-07-08 20:58:45 +08:00 via Android
    你需要 Sakurafrp
    yulihao
        4
    yulihao  
       2020-07-08 21:25:11 +08:00
    配置文件你先得贴上来
    Juszoe
        5
    Juszoe  
       2020-07-08 21:53:24 +08:00
    我猜是 frpc 的配置名出现重复了?
    比如两个 frpc 都是 [ssh]
    muhairen
        6
    muhairen  
    OP
       2020-07-08 22:22:10 +08:00
    @Juszoe 没有,一个是 ssh,一个是 ssh2
    muhairen
        7
    muhairen  
    OP
       2020-07-08 22:23:20 +08:00
    @Juszoe 如果重复的话,实际上 frpc 和 frps 就不能正常连接
    muhairen
        8
    muhairen  
    OP
       2020-07-08 22:28:36 +08:00
    @greatbody 有公网 ip,但是我没有路由器的管理权
    @StarUDream @yulihao 你们说的对,下面贴了
    @windyland 我去了解一下

    这是 jetson 的配置,frpc 可以和 frps,但是 ssh 连不进去,会超时
    [common]
    server_addr = ******
    server_port = 7000

    [ssh2]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 22
    remote_port = 18848

    这是 ubuntu 主机的设置,能正常 ssh 连进去
    [common]
    server_addr = ******
    server_port = 7000

    [ssh]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 22
    remote_port = 7001
    hisys
        9
    hisys  
       2020-07-09 07:49:21 +08:00
    @muhairen

    [ssh2]
    type = tcp
    local_ip = 127.0.0.1 #这里改为局域网 ip,类似 192.168.0.x
    local_port = 22
    remote_port = 18848

    把 local_ip 改为该设备的局域网的 IP,然后重启 frpc 服务试试。
    很可能是 ssh 的端口并没有在 127.0.0.1 上启用
    StarUDream
        10
    StarUDream  
       2020-07-09 08:25:58 +08:00 via Android
    配置没问题,先看跳板机有没有 18848 端口,有的话 curl 一下是不是 ssh,如果是再看是不是 ssh 连接方式或账号密码的问题。
    muhairen
        11
    muhairen  
    OP
       2020-07-09 08:46:24 +08:00 via Android
    @hisys 有点没明白,什么叫没有启用端口,防火墙关掉了,程序一调用不就启用了么
    muhairen
        12
    muhairen  
    OP
       2020-07-09 08:48:35 +08:00 via Android
    @StarUDream 你说的有没有 18848 端口指的是被占用么?并没有被占用
    gtchan13579
        13
    gtchan13579  
       2020-07-09 09:02:33 +08:00
    为啥要用两个配置 你两台一个局域网的话直接都放在 Ubuntu 上共用一个隧道不就行了吗
    [common]
    server_addr = ******
    server_port = 7000

    [ssh]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 22
    remote_port = 7001

    [ssh2]
    type = tcp
    local_ip = 另一台设备局域网 ip
    local_port = 22
    remote_port = 18848
    StarUDream
        14
    StarUDream  
       2020-07-09 09:14:38 +08:00
    @muhairen #12
    跳板机没有 18848 端口?那你 jetson 没有连到你的跳板机呀。
    你 frps 可以把 log 开下来,看有没有 ssh2 的连接信息。
    StarUDream
        15
    StarUDream  
       2020-07-09 09:15:43 +08:00
    会有类似这样的信息,在 log 里
    ```
    2020/06/24 17:54:01 [I] [service.go:432] [xxx] client login info: ip [xxx] version [0.33.0] hostname [] os [linux] arch [amd64]
    2020/06/24 17:54:01 [I] [tcp.go:63] [xxx] [ssh] tcp proxy listen port [50000]
    2020/06/24 17:54:01 [I] [control.go:445] [xxx] new proxy [ssh] success
    ```
    muhairen
        16
    muhairen  
    OP
       2020-07-09 09:46:02 +08:00
    @StarUDream 开始以为你说的是被其他进程占用,我看信息显示是连接上了
    @greatbody 我后来是你这样做的,但是很好奇为什么配置两个 frpc 就是不行,奇怪的是初始 ssh 依然正常
    log 是有的,不过和你的不太一样
    这个是 frpc 的 log

    2020/07/09 09:31:02 [I] [service.go:282] [7*e] login to server success, get run id [7*e], server udp port [0]
    2020/07/09 09:31:02 [I] [proxy_manager.go:144] [7*e] proxy added: [ssh2]
    2020/07/09 09:31:02 [I] [control.go:179] [7*e] [ssh2] start proxy success
    2020/07/09 09:36:04 [I] [control.go:267] [7*e] control writer is closing
    2020/07/09 09:36:04 [I] [service.go:174] [7*e] try to reconnect to server...
    2020/07/09 09:36:04 [E] [control.go:157] [7*e] work connection closed before response StartWorkConn message: EOF
    2020/07/09 09:36:04 [I] [visitor_manager.go:60] [7*e] gracefully shutdown visitor manager
    2020/07/09 09:36:04 [W] [service.go:177] [7*e] reconnect to server error: dial tcp 47.****:7000: connect: connection refused
    2020/07/09 09:36:05 [I] [service.go:174] [7*e] try to reconnect to server...
    2020/07/09 09:36:05 [W] [service.go:177] [7*e] reconnect to server error: dial tcp 47.****:7000: connect: connection refused
    2020/07/09 09:36:07 [I] [service.go:174] [7*e] try to reconnect to server...
    2020/07/09 09:36:07 [W] [service.go:177] [7*e] reconnect to server error: dial tcp 47.****:7000: connect: connection refused
    2020/07/09 09:36:11 [I] [service.go:174] [7*e] try to reconnect to server...
    2020/07/09 09:36:11 [I] [service.go:282] [7*e] login to server success, get run id [7*e], server udp port [0]
    2020/07/09 09:36:11 [I] [proxy_manager.go:144] [7*e] proxy added: [ssh2]
    2020/07/09 09:36:11 [I] [control.go:179] [7*e] [ssh2] start proxy success

    下面是重启之后 frps 的 log

    2020/07/09 09:36:07 [I] [service.go:178] frps tcp listen on 0.0.0.0:7000
    2020/07/09 09:36:07 [I] [root.go:209] start frps success
    2020/07/09 09:36:11 [I] [service.go:432] [4****8] client login info: ip [221.****:56514] version [0.33.0] hostname [] os [linux] arch [amd64]
    2020/07/09 09:36:11 [I] [tcp.go:63] [4****8] [ssh] tcp proxy listen port [7001]
    2020/07/09 09:36:11 [I] [control.go:445] [4****8] new proxy [ssh] success
    2020/07/09 09:36:11 [I] [service.go:432] [7*e] client login info: ip [221.****:56776] version [0.33.0] hostname [] os [linux] arch [arm64]
    2020/07/09 09:36:11 [I] [tcp.go:63] [7*e] [ssh2] tcp proxy listen port [18848]
    2020/07/09 09:36:11 [I] [control.go:445] [7*e] new proxy [ssh2] success

    突然想到是不是我这边路由器的问题,毕竟我没有管理权,看不到里面的 log
    yulihao
        17
    yulihao  
       2020-07-09 10:05:58 +08:00
    @muhairen 参考一下 13 楼的做法,可能是不允许 127.0.0.1 进行 ssh 连接
    muhairen
        18
    muhairen  
    OP
       2020-07-09 10:17:19 +08:00
    @yulihao 这样依然不可以,如果都放在 ubuntu 主机上,先登录 ubuntu 主机再登录 jetson 是可以的,直接登录 jetson 就是不可以
    squarer
        19
    squarer  
       2020-07-09 11:20:38 +08:00
    你登录 jetson,ifconfig,看看有没有 lo 就是检查一下有没有 loopback,我遇到过没有本地回环的,也就不能使用 127.0.0.1 了
    还有一点,我不太确定,请 ubuntu 的不要使用 7001,改其他,比如 10000 以上的,frps 会默认使用配置的端口及配置的端口+1 的端口
    StarUDream
        20
    StarUDream  
       2020-07-09 11:34:46 +08:00
    你先在当前环境 curl 地址加端口确认 ssh 没问题,然后再连不上就是 ssh 配置的问题了。
    muhairen
        21
    muhairen  
    OP
       2020-07-09 11:35:37 +08:00
    @squarer 本地回环是有的,ubuntu 主机改用高数字端口之后也不能连接了,好奇怪
    muhairen
        22
    muhairen  
    OP
       2020-07-09 11:46:38 +08:00
    @StarUDream 可是 log 里面显示已经连接上了啊,curl 要测试什么呢?
    @squarer ubuntu 又试了 7001 之外的其他低端口,也不行,只有 7001 可用,这里测试用到的端口都在阿里云里面打开了,也重启 vps 了
    wslzy007
        23
    wslzy007  
       2020-07-09 13:16:22 +08:00
    给你个非 frp 的备方案吧,用 sg
    github.com/lazy-luo/smarGate
    mosliu
        24
    mosliu  
       2020-07-09 16:13:25 +08:00
    跳板机的 端口 防火墙开了么 安全组策略添加了么
    muhairen
        25
    muhairen  
    OP
       2020-07-09 16:39:45 +08:00
    @mosliu 阿里云的策略组一开始就添加了,系统自带的防火墙我直接就给关了
    jagger2048
        26
    jagger2048  
       2020-07-09 16:43:36 +08:00
    有 VPS 的话可以试试 Zerotier one,目前用着都还好
    yc8332
        27
    yc8332  
       2020-07-09 17:07:53 +08:00
    看看日志就知道了。。服务端和客户端日志。。
    laminux29
        28
    laminux29  
       2020-07-09 17:11:32 +08:00
    @greatbody 公网 IP 会变,还要弄一个 DDNS 才行。
    ares586
        29
    ares586  
       2020-07-09 17:30:16 +08:00
    @windyland 惊讶,这个为什么会存在且免费。。。
    windyland
        30
    windyland  
       2020-07-09 17:41:34 +08:00 via Android
    @ares586 因为大家有需求+一群 nice 的维护者
    lopetver
        31
    lopetver  
       2020-07-09 17:54:38 +08:00
    不用跳板机,直接用 ssh 命令可以连接 frpc 映射的端口能连接吗
    muhairen
        32
    muhairen  
    OP
       2020-07-09 18:34:32 +08:00
    @laminux29 我要有路由器控制器没这么多破事了
    @lopetver 连不上啊,这是内网啊,不过跳板机连上 ubuntu 主机之后能 ssh 到内网的其他设备,也是我目前的解决方案
    yulihao
        33
    yulihao  
       2020-07-10 08:01:09 +08:00
    @muhairen 内网 IP 能连得上 SSH 吗?
    muhairen
        34
    muhairen  
    OP
       2020-07-10 08:05:05 +08:00 via Android
    @yulihao 内网里面可以互相连
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2641 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 12:13 PVG 20:13 LAX 04:13 JFK 07:13
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86