代码拉取完成,页面将自动刷新
package tunnel
import (
client "github.com/shenshouer/go-tunnel/client"
proto "github.com/shenshouer/go-tunnel/proto"
tuntls "github.com/shenshouer/go-tunnel/tls"
)
const (
defaultAddr = "v1.airlock.io:443"
defaultSNI = "v1.airlock.io"
)
type airlockAuthExtra struct {
Token string
}
// defaultClient returns a new client session connected to the default
// public tunneling service hosted at airlock.io
func defaultClient(authtoken string) (*client.ReconnectingSession, error) {
trusted, err := tuntls.ClientTrusted(defaultSNI)
if err != nil {
return nil, err
}
authExtra := airlockAuthExtra{Token: authtoken}
sess, err := DialTLSReconnecting("tcp", defaultAddr, trusted, authExtra)
if err != nil {
return nil, err
}
return sess, nil
}
// ListenHTTP begins listening for HTTP connections on a randomly-assigned
// hostname of the public tunneling service at airlock.io
func ListenHTTP() (*client.Tunnel, error) {
c, err := defaultClient("")
if err != nil {
return nil, err
}
return c.ListenHTTP(new(proto.HTTPOptions), nil)
}
// ListenHTTPS begins listening for HTTPS connections on a randomly-assigned
// hostname of the public tunneling service at airlock.io
/*
func ListenHTTPS() (*client.Tunnel, error) {
c, err := defaultClient("")
if err != nil {
return nil, err
}
return c.ListenHTTPS(new(proto.HTTPOptions), nil)
}
*/
// ListenTCP begins listening for TCP connections on a randomly-assigned
// port of the public tunneling service at airlock.io
func ListenTCP() (*client.Tunnel, error) {
c, err := defaultClient("")
if err != nil {
return nil, err
}
return c.ListenTCP(new(proto.TCPOptions), nil)
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。