海运的博客

自编译ngrok服务器

发布时间:August 18, 2014 // 分类:网络工具 // 15 Comments

首先安装GO环境,https://www.haiyun.me/archives/1009.html

cd /usr/local/src/
git clone https://github.com/inconshreveable/ngrok.git
export GOPATH=/usr/local/src/ngrok/
export NGROK_DOMAIN="haiyun.me"

生成自签名SSL证书,ngrok为ssl加密连接:

cd ngrok
openssl genrsa -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=$NGROK_DOMAIN" -days 5000 -out rootCA.pem
openssl genrsa -out device.key 2048
openssl req -new -key device.key -subj "/CN=$NGROK_DOMAIN" -out device.csr
openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000
cp rootCA.pem assets/client/tls/ngrokroot.crt
cp device.crt assets/server/tls/snakeoil.crt 
cp device.key assets/server/tls/snakeoil.key
GOOS=linux GOARCH=386
make clean
make release-server release-client

如果一直停留在go get gopkg.in/yaml.v1参考:https://www.haiyun.me/archives/1011.html
启动SERVER:

bin/ngrokd -domain="$NGROK_DOMAIN" -httpAddr=":8000" 

交叉编译windows客户端,最好安装最新版本Golang,使用yum安装的一直编译不通过。

cd /usr/local/go/src/
GOOS=windows GOARCH=386 CGO_ENABLED=0 ./make.bash
cd -
GOOS=windows GOARCH=386 make release-server release-client

客户端配置:

server_addr: "haiyun.me:4443"
trust_host_root_certs: false
tunnels:
  http:
    subdomain: "example"
    auth: "user:12345"
    proto:
      http: "80"

  ssh:
    remote_port: 2222
    proto:
      tcp: "22"

启动客户端:

bin/ngrok -config ngrok.conf start http ssh

注意所有domain要一致,不然会出现证书错误:

Failed to read message: remote error: bad certificate

Go get gopkg.in下载安装软件包无反应

发布时间:August 18, 2014 // 分类:GO // No Comments

在安装yaml的时候不能下载,无反应:

go get gopkg.in/yaml.v1

原因git版本太低,需>= 1.7.9.5,通过RPMForge源安装最新版本git解决:

yum --enablerepo=rpmforge-extras install git

参考:https://twitter.com/gniemeyer/status/472318780472045568

SSH转发远程端口指定监听地址

发布时间:August 18, 2014 // 分类:网络工具 // No Comments

SSH默认转发远程服务器端口时监听loop,只能通过本地访问端口,如:

ssh -R 0.0.0.0:9022:localhost:22 root@haiyun.me

修改配置文件允许自定义监听地址:

echo 'GatewayPorts yes' >> /etc/ssh/sshd_config 
/etc/init.d/sshd restart

Windows/Centos安装GO语言环境

发布时间:August 18, 2014 // 分类:GO // 3 Comments

Centos下使用epel源安装:

yum install golang

Centos/Linux下源码安装golang:

wget https://dl.google.com/go/go1.13.4.linux-amd64.tar.gz
tar -C /usr/local -xzf go*linux-amd64.tar.gz
mkdir $HOME/go
echo 'export GOROOT=/usr/local/go' >> ~/.bashrc 
echo 'export GOPATH=$HOME/go' >> ~/.bashrc 
echo 'export PATH=$PATH:$GOROOT/bin:$GOPATH/bin' >> ~/.bashrc 
echo 'export GO111MODULE=auto' >> ~/.bashrc 
source $HOME/.bashrc 

安装go get工具:

yum install mercurial git bzr subversion

Windows下安装:

https://dl.google.com/go/go1.11.2.windows-amd64.zip

设置环境变量:

setx GOOS windows
setx GOARCH amd64
setx GOROOT "D:\Program Files\go"
setx GOBIN "%GOROOT%\bin"
setx GO111MODULE auto
setx PATH %PATH%;"D:\Program Files\go\bin"

交叉编译:

CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build main.go
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go

减小编译生成文件大小:

go build -ldflags "-s -w"

穿透内网利器ngrok

发布时间:August 18, 2014 // 分类:网络工具 // No Comments

通过ngrok服务器转发端口到本地80:

ngrok 80

自定义二级域名,需在ngrok官网注册账号获取auth token:

ngrok -authtoken Co1KiaaAdpapgD -subdomain=example 80

转发TCP协议其它端口,

ngrok -authtoken Co1KiaaAdpapgD -proto=tcp 22

指定远程服务器端口:

auth_token: Co1KiaaAdpapgD
tunnels:
  ssh:
    proto:
      tcp: "22"
    remote_port: 52222

启动:

ngrok -config ngrok.conf start ssh
分类
最新文章
最近回复
  • liyk: 这个方法获取的IPv6大概20分钟之后就会失效,默认路由先消失,然后Global IPV6再消失
  • 海运: 不好意思,没有。
  • zongboa: 您好,請問一下有immortalwrt設定guest Wi-Fi的GUI教學嗎?感謝您。
  • 海运: 恩山有很多。
  • swsend: 大佬可以分享一下固件吗,谢谢。
  • Jimmy: 方法一 nghtp3步骤需要改成如下才能编译成功: git clone https://git...
  • 海运: 地址格式和udpxy一样,udpxy和msd_lite能用这个就能用。
  • 1: 怎么用 编译后的程序在家里路由器内任意一台设备上运行就可以吗?比如笔记本电脑 m参数是笔记本的...
  • 孤狼: ups_status_set: seems that UPS [BK650M2-CH] is ...
  • 孤狼: 擦。。。。apcupsd会失联 nut在冲到到100的时候会ONBATT进入关机状态,我想想办...
归档