rttys反向代理

go介绍

go安装

  1. 下载源码

  2. 解压后有一个go目录

  3. 将go目录mv到/usr/local

  4. 将/usr/local/go/bin加入到环境变量,vi /etc/profile

环境变量

  • GOROOT: 设置成/usr/local/go即可

  • GOPATH: 设置一个go项目的的工作目录。

    go install/go get和 go的工具等会用到GOPATH环境变量.

    GOPATH是作为编译后二进制的存放目的地和import包时的搜索路径 (其实也是你的工作目录, 你可以在src下创建你自己的go源文件, 然后开始工作)。

    1. GOPATH之下主要包含三个目录: bin、pkg、src
    2. bin目录主要存放可执行文件; pkg目录存放编译好的库文件, 主要是*.a文件; src目录下主要存放go的源文件

下载并编译rttys

在执行go get -u github.com/zhaojh329/rttys的时候(依赖GOPATH),go get命令会先下载然后自动的进行编译,但是这个go get过程必须要有GOPATH,在GOPATH目录下会有三个文件夹:bin、src、pkg。

GOPATH=$HOME/rttys `go get -u github.com/zhaojh329/rttys`
  • 认证

    ./rttys -gen-token
    
    Please set a password:******
    Your token is: 3390d2cb2766ab6fff7dbe49b24eeabf
    
    
  • 将rttys被systemd管理

    sudo mv rttys /usr/local/bin/
    
    sudo mkdir /etc/rttys
    
    sudo cp rttys.conf /etc/rttys/
    
    vi /etc/systemd/system/rttys.service
    

    加入/etc/systemd/system/rttys.service内容如下:

    [Unit]
    Description=rttys
    After=network.target
    
    [Service]
    ExecStart=/usr/local/bin/rttys -conf /etc/rttys/rttys.conf
    TimeoutStopSec=5s
    RestartSec=2
    Restart=always
    
    [Install]
    WantedBy=multi-user.target
    
    sudo systemctl daemon-reload
    sudo systemctl enable rttys
    sudo systemctl start rttys
    
    运行后会提示两个端口
    5912:是device的端口,运行rtty时需要指定。
    5913:是web服务器的端口
    
  • 访问http://95.169.20.162:5913

    上面的服务器是我的公网服务器。token为-t 3390d2cb2766ab6fff7dbe49b24eeabf

设备上运行rtty

sudo rtty -I 'My-device-ID' -h '95.169.20.162' -p 5912 -a -v -d 'My Device Description' -t 3390d2cb2766ab6fff7dbe49b24eeabf

其中:我-t 3390d2cb2766ab6fff7dbe49b24eeabf是token,和/etc/rttys/rttys.conf中的token一样。

rtty这个客户端程序,可能会有崩掉的可能,所以如果是嵌入式设备的话最好是永久在线,我们最好还是用systemd来管理。

vi /etc/systemd/system/rtty.service

[Unit]
Description=rttys
After=network.target

[Service]
ExecStart=rtty -I 'My-device-ID' -h '95.169.20.162' -p 5912 -a -v -d 'My Device Description' -t 3390d2cb2766ab6fff7dbe49b24eeabf

TimeoutStopSec=5s
RestartSec=2
Restart=always

[Install]
WantedBy=multi-user.target

执行远程命令

{"devid": "test", "username": "test", "password": "test", "cmd": "echo", "params": ["hello rtty"]}

curl -k http://95.169.20.162:5913/cmd -d '{"devid":"My-device-ID","username":"vk","password":"123456","sid":"7300da82837f58b7f4a634316af8fa85","cmd":"echo","params":["vk"]}'


 http://95.169.20.162:5912/cmd?token=bcd7041aa790904f110db52a79beb696

猜你喜欢

转载自blog.csdn.net/V__KING__/article/details/109279436