www.fastssh.com SSH over WebSockets with CDNs

2024-05-05 06:04
文章标签 ssh com www websockets fastssh cdns

本文主要是介绍www.fastssh.com SSH over WebSockets with CDNs,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

https://www.fastssh.com/page/create-ssh-cdn-websocket/server/这其实不是标准的websocket报文(服务器响应报文无Sec-Websocket-Accept字段),所以无法使用github.com/gorilla/websocket包:GET / HTTP/1.1
Host: hostname:8080
User-Agent: Go-http-client/1.1
Connection: Upgrade
Origin: http://hostname:8080
Sec-WebSocket-Key: t+M8AiisFSInx6hLi1YBOg==
Sec-WebSocket-Version: 13
Upgrade: websocketHTTP/1.1 101 Switching Protocol
Server: nginx/1.24.0
Date: Sat, 04 May 2024 08:37:56 GMT
Content-Length: 1048576000000
Connection: upgrade

首先申请账户:

使用golang1.20 编写转发程序:

package mainimport ("bufio""fmt""net""io""net/http"_ "strings"
)var upgradeHeaders = []string{"GET / HTTP/1.1","Host: sg-public1.sshws.net:80","User-Agent: Go-http-client/1.1","Connection: Upgrade","Origin: http://sg-public1.sshws.net:80","Sec-WebSocket-Key: t+M8AiisFSInx6hLi1YBOg==","Sec-WebSocket-Version: 13","Upgrade: websocket","","",
}func main() {listener, err := net.Listen("tcp", ":6022")if err != nil {fmt.Println("Error listening on port 6022: ", err)return}defer listener.Close()for {conn, err := listener.Accept()if err != nil {fmt.Println("Error accepting connection: ", err)continue}go handleClient(conn)}
}func handleClient(conn net.Conn) {defer conn.Close()// Connect to the WebSocket serverserverConn, err := net.Dial("tcp", "sg-public1.sshws.net:80")if err != nil {fmt.Println("Error connecting to WebSocket server: ", err)return}defer serverConn.Close()// Send upgrade headersfor _, header := range upgradeHeaders {if _, err := fmt.Fprint(serverConn, header+"\r\n"); err != nil {fmt.Println("Error sending header: ", err)return}}// Read server responsereader := bufio.NewReader(serverConn)response, err := http.ReadResponse(reader, nil)if err != nil {fmt.Println("Error reading server response: ", err)return}defer response.Body.Close()if response.StatusCode != http.StatusSwitchingProtocols {fmt.Println("Server did not accept WebSocket upgrade: ", response.Status)return}// Forward data between TCP client and WebSocket serverbuffer := make([]byte, 1024)go io.CopyBuffer(serverConn, conn, buffer)io.CopyBuffer(conn, serverConn, buffer)
}

编译后运行: 

mkdir -pv /tmp/Ay;
cd /tmp/Ay;  
go build -ldflags="-s -w" -o ws2.elf  ws2.go ;./ws2.elf

验证并使用:

/tmp/busybox netstat -anl|grep 6022;   ssh -o StrictHostKeyChecking=no -o HostKeyAlgorithms=+ssh-dss -o ServerAliveInterval=10 -o ServerAliveCountMax=3 -D 3080 -Nf -v fastssh.com-username@127.0.0.22 -p 6022;/tmp/busybox netstat -anl|grep 3080; curl -v -4 -x socks5h://127.0.0.1:3080 cip.cc;

这篇关于www.fastssh.com SSH over WebSockets with CDNs的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/960947

相关文章

git ssh key相关

step1、进入.ssh文件夹   (windows下 下载git客户端)   cd ~/.ssh(windows mkdir ~/.ssh) step2、配置name和email git config --global user.name "你的名称"git config --global user.email "你的邮箱" step3、生成key ssh-keygen

消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法

消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法   消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法 [转载]原地址:http://blog.csdn.net/x605940745/article/details/17911115 消除SDK更新时的“

在SSH的基础上使用jquery.uploadify.js上传文件

在SSH框架的基础上,使用jquery.uploadify.js实现文件的上传,之前搞了好几天,都上传不了, 在Action那边File接收到的总是为null, 为了这个还上网搜了好多相关的信息,但都不行,最后还是搜到一篇文章帮助到我了,希望能帮助到为之困扰的人。 jsp页面的关键代码: <link rel="stylesheet" type="text/css" href="${page

Caused by: org.hibernate.MappingException: Could not determine type for: org.cgh.ssh.pojo.GoodsType,

MappingException:这个主要是类映射上的异常,Could not determine type for: org.cgh.ssh.pojo.GoodsType,这句话表示GoodsType这个类没有被映射到

com.google.gson.JsonSyntaxException:java.lang.IllegalStateException异常

用Gson解析json数据的时候,遇到一个异常,如下图: 这个异常很简单,就是你的封装json数据的javabean没有写对,你仔细查看一下javabean就可以了 比如:我的解析的代码是             Gson gson = new Gson();             ForgetJson rb = gson.fromJson(agResult.mstrJson, For

SSH连接虚拟机中的Ubuntu 12.0.4

摘要:主要是解决不能使用ssh远程Ubuntu的问题、使用的远程工具是putty、也可以使用xshell、ubunut12.0.4是装在虚拟机中的、不过这个应该没有什么影响。 一:问题的出现 前两天使用VMware装了一个ubuntu12.0.4之后、因为常常使用命令行、又喜欢在虚拟机与实体机中切来切去、感觉很不方便、就想在xp中远程ubuntu、遇到了点小意外、经过一会调试解决成功、把

【20240907问题记录(未解决)】Conda环境问题:SSH与本地环境变量不一致

Conda 允许用户在同一系统上创建多个独立的Python环境。然而,最近遇到了一个奇怪的问题:通过SSH连接到远程Ubuntu机器时,Conda环境变量的行为与本地机器不一致。以下是具体遇到的问题: 1. 问题描述 在本地Ubuntu机器上,我的conda的python版本是3.6,而pip版本可以通过命令 pip --version 查看,显示为: pip 21.3.1 from /ho

ssh版本升级导致连接失败

公司系统使用的是第三方ssh插件jsch-0.1.39.jar,之前采集正常的,但是厂家服务器ssh升级成2.0版本,然后程序就报错,异常如下: com.jcraft.jsch.JSchException: Algorithm negotiation failat com.jcraft.jsch.Session.receive_kexinit(Session.java:510)at com.

在项目SSH整合时,启动测试时报的警告!

一、tomcat 运行过程中提示: 22:11:07,082 [main] WARN  DTDEntityResolver : recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer

The import com.google cannot be resolved

The import com.google cannot be resolved,报错: 第一感觉就是缺少jar包,因为项目用maven管理,所以在pom.xml中添加: <dependency>  <groupId>com.google.code.gson</groupId>  <artifactId>gson</artifactId>  <version>2.3.1</ver