tastypear commited on
Commit
7ca89ed
1 Parent(s): d8077af

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +153 -1
README.md CHANGED
@@ -8,4 +8,156 @@ pinned: false
8
  license: apache-2.0
9
  ---
10
 
11
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
  license: apache-2.0
9
  ---
10
 
11
+ Dev Mode Huggingface Space 的付费功能,支持通过 VSCode Remote SSH 插件连接和管理 Space。
12
+
13
+ 本 Demo 展示如何在免费的 Space 中实现类似 Dev Mode 的功能。
14
+
15
+ ### 一、普通 SSH 连接
16
+
17
+ Dumplicate 当前 Space,选择 public,填入自定义 `PASSWORD`(必填)
18
+
19
+ 下载与系统相匹配的 [glider](https://github.com/nadoo/glider/releases)工具,在本地执行命令:
20
+
21
+ ```
22
+ glider --listen socks5://:22022 -forward wss://$MY_SPACE.hf.space/control,trojanc://{MY_PASSWORD}@
23
+ ```
24
+
25
+ `$MY_SPACE` 可以在 Space 右上角 [...] - Embed this Space - Direct URL 中找到。例如当前 Space 是 `tastypear-devmode-demo`
26
+
27
+ `$PASSWORD` 是刚才设置的密码。
28
+
29
+ 最后使用 ssh 通过代理 `socks5://localhost:22022` 连接到 `ubuntu@localhost:22022`,账户无密码。
30
+
31
+ 现代 ssh 客户端都支持通过代理连接,你可以使用 Xshell。
32
+
33
+ ### 二、使用 VSCode 管理 Space
34
+
35
+ 在 VSCode 内安装 Remote SSH 插件。
36
+
37
+ 在左下角`管理-命令面板`(Ctrl+Shift+P)中 `Remte-SSH: 连接到主机 - 配置 SSH 主机`,选择一个你要使用的 `.ssh\config`(通常是 `C:\Users\用户名\.ssh\config`)
38
+
39
+ 这里提供两种通过 socks5 连接到主机的配置:
40
+
41
+ ```
42
+ Host Dev-Mode-Config-ncat
43
+     ProxyCommand "D:\…\ncat.exe" --proxy-type socks5 --proxy localhost:22022 %h %p
44
+     HostName localhost
45
+     User ubuntu
46
+     Port 22022
47
+    
48
+ Host Dev-Mode-Config-connect
49
+     ProxyCommand "D:\…\connect.exe" -S localhost:22022 %h %p
50
+     HostName localhost
51
+     User ubuntu
52
+     Port 22022
53
+ ```
54
+
55
+ ncat.exe 是 [nmap](https://nmap.org/download#windows) 的一部分,安装时可以单独选择。
56
+
57
+ connect.exe 通常与 git 客户端在一起,位于`mingw64/bin`下。(如果你在本机中找不到 connect.exe,那么就使用 ncat 方案吧。)
58
+
59
+ Linux 用户请使用 nc 自行尝试。
60
+
61
+ 如果因重启 Space 导致 VSCode 无法连接,请删除本地 `.ssh\known_hosts` 文件后重试。
62
+
63
+ ### 三、连接后的注意事项
64
+
65
+ glider 的连接依赖 nginx 反向代理功能。你可以修改 nginx.conf 文件来更换主页,但如果配置有误导致 nginx 重启失败,你将因为 glider 断开与 Space 彻底失联。
66
+
67
+ 为了防止这种情况发生,在打算重启 nginx 前,你应该使用隧道工具为 22022 端口建立独立的外部访问途径。
68
+
69
+ 以 [bore](https://github.com/ekzhang/bore/releases) 工具为例,在 Space 中执行:
70
+
71
+ ```bash
72
+ wget https://github.com/ekzhang/bore/releases/download/v0.5.1/bore-v0.5.1-x86_64-unknown-linux-musl.tar.gz
73
+ tar -xvf bore*.tar.gz && rm bore*.tar.gz && chmod +x bore
74
+ nohup ./bore local 22022 --to bore.pub &
75
+ ```
76
+
77
+ ```bash
78
+ # 查看 bore 分配的转发端口
79
+ tail nohup.out
80
+ ```
81
+
82
+ 然后通过 ssh 客户端连接 `ubuntu@bore.pub:port`,然后在这个 session 中尝试重启 nginx:
83
+
84
+ ```bash
85
+ ps -ef | grep 'nginx' | grep -v grep | awk '{print $2}' | xargs -r kill -9 && nohup /usr/sbin/nginx -c /home/ubuntu/nginx.conf >/dev/null 2>&1 &
86
+ ```
87
+
88
+ 你也可以使用 [wstunnel](https://github.com/erebe/wstunnel) 自托管隧道,这样即使将 Space 设置为 private 也能继续连接,而不依赖 glider(不过可能会因为服务端不稳定而失联,风险自负)。
89
+
90
+ ⚠警告!不要使用 cloudflared 建立隧道,官方可能限制该工具从而导致 Space 断网,重建也无法恢复。
91
+
92
+ ⚠警告!不要使用 proot 模拟 root 环境。理由同上。
93
+
94
+ ### 附录:Space 跑分
95
+
96
+ ```
97
+ ubuntu@localhost:~$ wget -qO- yabs.sh | bash
98
+ # ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #
99
+ # Yet-Another-Bench-Script #
100
+ # v2024-06-09 #
101
+ # https://github.com/masonr/yet-another-bench-script #
102
+ # ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #
103
+
104
+ Sun Jun 30 20:05:16 UTC 2024
105
+
106
+ Basic System Information:
107
+ ---------------------------------
108
+ Uptime : 12 days, 2 hours, 51 minutes
109
+ Processor : Intel(R) Xeon(R) Platinum 8375C CPU @ 2.90GHz
110
+ CPU cores : 16 @ 3499.737 MHz
111
+ AES-NI : ✔ Enabled
112
+ VM-x/AMD-V : ❌ Disabled
113
+ RAM : 123.8 GiB
114
+ Swap : 884.8 GiB
115
+ Disk : 1.7 TiB
116
+ Distro : Ubuntu 24.04 LTS
117
+ Kernel : 5.10.217-205.860.amzn2.x86_64
118
+ VM Type :
119
+ IPv4/IPv6 : ✔ Online / ❌ Offline
120
+
121
+ IPv4 Network Information:
122
+ ---------------------------------
123
+ ISP : Amazon.com, Inc.
124
+ ASN : AS14618 Amazon.com, Inc.
125
+ Host : AWS EC2 (us-east-1)
126
+ Location : Ashburn, Virginia (VA)
127
+ Country : United States
128
+
129
+ fio Disk Speed Tests (Mixed R/W 50/50) (Partition overlay):
130
+ ---------------------------------
131
+ Block Size | 4k (IOPS) | 64k (IOPS)
132
+ ------ | --- ---- | ---- ----
133
+ Read | 6.15 MB/s (1.5k) | 65.86 MB/s (1.0k)
134
+ Write | 6.14 MB/s (1.5k) | 66.31 MB/s (1.0k)
135
+ Total | 12.29 MB/s (3.0k) | 132.18 MB/s (2.0k)
136
+ | |
137
+ Block Size | 512k (IOPS) | 1m (IOPS)
138
+ ------ | --- ---- | ---- ----
139
+ Read | 63.65 MB/s (124) | 62.58 MB/s (61)
140
+ Write | 66.72 MB/s (130) | 67.04 MB/s (65)
141
+ Total | 130.38 MB/s (254) | 129.63 MB/s (126)
142
+
143
+ iperf3 Network Speed Tests (IPv4):
144
+ ---------------------------------
145
+ Provider | Location (Link) | Send Speed | Recv Speed | Ping
146
+ ----- | ----- | ---- | ---- | ----
147
+ Eranium | Amsterdam, NL (100G) | 1.72 Gbits/sec | 1.96 Gbits/sec | --
148
+ Uztelecom | Tashkent, UZ (10G) | 807 Mbits/sec | 931 Mbits/sec | --
149
+ Leaseweb | Singapore, SG (10G) | 620 Mbits/sec | 630 Mbits/sec | --
150
+ Clouvider | Los Angeles, CA, US (10G) | 1.84 Gbits/sec | 2.93 Gbits/sec | --
151
+ Leaseweb | NYC, NY, US (10G) | 3.16 Gbits/sec | 9.30 Gbits/sec | --
152
+ Edgoo | Sao Paulo, BR (1G) | 1.13 Gbits/sec | 1.39 Gbits/sec | --
153
+
154
+ Geekbench 6 Benchmark Test:
155
+ ---------------------------------
156
+ Test | Value
157
+ |
158
+ Single Core | 1532
159
+ Multi Core | 1846
160
+ Full Test | https://browser.geekbench.com/v6/cpu/6734087
161
+
162
+ YABS completed in 13 min 26 sec
163
+ ```