2026-06-30 08:40:10
最近体验了一下 UU远程 的新版本,发现新增了一个 端口映射 功能。
这个功能对开发和运维人员来说非常实用。很多时候,我们需要将远程服务器或内网设备上的某个服务(例如 Docker 管理平台、数据库等)映射到本地进行访问和调试。
以前通常会选择 FRP、NPS 等内网穿透方案,但前提是需要准备一台拥有公网 IP 的服务器。用一些免费的内网穿透网速又慢的一批。
而 UU远程 的端口映射则省去了这些步骤,无需公网 IP,也无需自行部署穿透服务,只要主控端和被控端登录同一个账号,即可快速完成端口映射,使用体验非常不错。
1,UU远程需要更新到最新版本(26年5月以后的版本)
2,必须登录同一个账号;
3,目前支持Windows主控端;
4,仅支持TCP协议端口映射;
5,支持穿透被控端内网所有IP端口;
这里我们演示一下,如何在公司的电脑上,访问家里的OpenWrt
家庭PC 的IP:192.168.31.110
OpenWrt的IP:192.168.31.199
OpenWrt 管理平台端口:80
1,我的设备 - 选择被控设备(家庭PC) - 更多 - 端口映射
2,名称随意,本地端口(随意,没有被占用即可),目标地址(被控端内网IP,或者内网其他设备IP),目标端口
3,映射成功后,本地直接访问 127.0.0.1:13398 即可!
在家庭可完全打通公司内网,堪比VPN;当然这种操作是存在风险的!一定要谨慎!
1,在公司的电脑上启动一个代理软件,之前博主推荐过不少。最近博主使用3Proxy比较多:内网服务器利用跳板机代理访问公网:3Proxy
2,启动3Proxy后,在UU远程中配置一个端口转发,将被控端的808端口穿透出来
3,系统 - 网络和Internet - 代理 - 手动设置代理 - 地址 127.0.0.1 端口填写映射的端口
点击保存后网络就通了!如果你想访问公司内网IP,比如:192.168.1.1 仅需将下图中的文本框内的:192.168.* 删除掉即可!
这样192.168的IP也可以走代理了!
另一个妙用!
此处内容需要关注微信才能查看
端口映射一定要确保安全,切勿随意穿透。避免不必要的麻烦!
2026-06-29 08:28:23
Agent Mail,是 QQ 邮箱团队为 Agent 打造的专属邮箱服务。与个人邮箱隔离,原生适配 Agent,助力你安全、高效地使用 Agent 收发邮件。
看似非常不错的功能,之前网易也推出类似服务:ClawEmail 并未激起太大的水花~
agent.qq.com
1,仅限微信扫码登录
2,同时拥有2个 @agent.qq.com 邮箱
3,每个邮箱每天限制发送 50封邮件,收信不限制,1Gb容量
4,发信必须使用Agent才可以
5,邮箱前缀随机分配,也可修改为自己心仪的前缀(抓紧选自己的心仪前缀)
目前平台还未强制要求实名认证!实名认证仅需填写姓名,必须和微信实名姓名一致即完成实名。
1,首先用腾讯自家的 WorkBuddy,配置好之后,确实可以发送邮件!没有太多难度!
2,这里推荐大家体验一下华为云的 AI Shell。历史文章:华为云AI Shell体验:免费4核7G云服务器,附自动保活脚本
仅需将提示词在AI Shell中发给AI
请阅读 https://agent.qq.com/doc/cli-setup.md 文档,按照步骤为我安装并配置 Agent Mail CLI。
可用使用代码封装一下,利用API发信!
"""
Agently Mail API - Python wrapper for agently-cli email operations.
Usage:
from agently_mail import send_email, list_messages, read_message, search_messages
# Send email
result = send_email(
to=["[email protected]"],
subject="Hello",
body="<p>This is a test email.</p>"
)
# List messages
messages = list_messages(limit=10)
"""
import subprocess
import json
import os
from typing import Optional, List, Dict, Any, Union
def _run_cli(args: List[str], input_data: Optional[str] = None) -> Dict[str, Any]:
"""
Execute agently-cli command and return parsed JSON result.
Args:
args: Command arguments (e.g., ["message", "+send", "--to", "[email protected]"])
input_data: Optional stdin data
Returns:
Parsed JSON response as dict
Raises:
RuntimeError: If command fails
"""
cmd = ["agently-cli"] + args
result = subprocess.run(
cmd,
capture_output=True,
text=True,
input=input_data,
timeout=60
)
if result.stdout:
try:
return json.loads(result.stdout)
except json.JSONDecodeError:
pass
if result.returncode != 0:
raise RuntimeError(f"CLI error: {result.stderr or 'Unknown error'}")
return {"ok": True, "data": None}
def send_email(
to: Union[str, List[str]],
subject: str,
body: Optional[str] = None,
body_file: Optional[str] = None,
cc: Optional[Union[str, List[str]]] = None,
bcc: Optional[Union[str, List[str]]] = None,
attachments: Optional[Union[str, List[str]]] = None,
body_format: Optional[str] = None,
dry_run: bool = False,
auto_confirm: bool = True
) -> Dict[str, Any]:
"""
Send an email via agently-cli.
Args:
to: Recipient email address(es). Required.
subject: Email subject. Required.
body: Email body content (HTML or plain text).
body_file: Path to file containing email body (alternative to body).
cc: CC recipient(s).
bcc: BCC recipient(s).
attachments: File path(s) to attach.
body_format: Force body format ('plain' or 'html').
dry_run: Print API calls without executing.
auto_confirm: Automatically confirm and send (default True).
Returns:
Dict with 'ok' and 'data' fields containing send result.
Example:
result = send_email(
to=["[email protected]", "[email protected]"],
subject="Meeting Tomorrow",
body="<p>Hi all,</p><p>Let's meet at 10am.</p>",
cc=["[email protected]"]
)
"""
# Normalize recipients to list
if isinstance(to, str):
to = [to]
if cc and isinstance(cc, str):
cc = [cc]
if bcc and isinstance(bcc, str):
bcc = [bcc]
if attachments and isinstance(attachments, str):
attachments = [attachments]
# Build command arguments
args = ["message", "+send"]
for recipient in to:
args.extend(["--to", recipient])
args.extend(["--subject", subject])
if body:
args.extend(["--body", body])
elif body_file:
args.extend(["--body-file", body_file])
else:
raise ValueError("Either 'body' or 'body_file' must be provided")
if cc:
for c in cc:
args.extend(["--cc", c])
if bcc:
for b in bcc:
args.extend(["--bcc", b])
if attachments:
for att in attachments:
args.extend(["--attachment", att])
if body_format:
args.extend(["--body-format", body_format])
if dry_run:
args.append("--dry-run")
# First call - get confirmation token
result = _run_cli(args)
# Check if confirmation is required
if result.get("ok") and result.get("data", {}).get("confirmation_required"):
confirmation_token = result["data"].get("confirmation_token")
if not auto_confirm or not confirmation_token:
# Return for manual confirmation
return result
# Second call - confirm and send
args.extend(["--confirmation-token", confirmation_token])
result = _run_cli(args)
return result
def list_messages(
limit: Optional[int] = None,
folder: Optional[str] = None,
unread_only: bool = False
) -> Dict[str, Any]:
"""
List emails in inbox.
Args:
limit: Maximum number of messages to return.
folder: Folder to list (e.g., 'inbox', 'sent').
unread_only: Only return unread messages.
Returns:
Dict with 'ok' and 'data' fields containing message list.
"""
args = ["message", "+list"]
if limit:
args.extend(["--limit", str(limit)])
if folder:
args.extend(["--folder", folder])
if unread_only:
args.append("--unread-only")
return _run_cli(args)
def read_message(message_id: str) -> Dict[str, Any]:
"""
Read a specific email message.
Args:
message_id: The message ID to read.
Returns:
Dict with 'ok' and 'data' fields containing message content.
"""
args = ["message", "+read", "--id", message_id]
return _run_cli(args)
def search_messages(query: str, limit: Optional[int] = None) -> Dict[str, Any]:
"""
Search emails by keyword.
Args:
query: Search keyword.
limit: Maximum number of results.
Returns:
Dict with 'ok' and 'data' fields containing search results.
"""
args = ["message", "+search", "--q", query]
if limit:
args.extend(["--limit", str(limit)])
return _run_cli(args)
def reply_to_message(
message_id: str,
body: str,
reply_all: bool = False
) -> Dict[str, Any]:
"""
Reply to an email message.
Args:
message_id: The message ID to reply to.
body: Reply body content.
reply_all: Reply to all recipients.
Returns:
Dict with 'ok' and 'data' fields containing reply result.
"""
args = ["message", "+reply", "--id", message_id, "--body", body]
if reply_all:
args.append("--reply-all")
result = _run_cli(args)
# Handle two-phase confirmation
if result.get("ok") and result.get("data", {}).get("confirmation_required"):
confirmation_token = result["data"].get("confirmation_token")
if confirmation_token:
args.extend(["--confirmation-token", confirmation_token])
result = _run_cli(args)
return result
def forward_message(
message_id: str,
to: Union[str, List[str]],
body: Optional[str] = None
) -> Dict[str, Any]:
"""
Forward an email message.
Args:
message_id: The message ID to forward.
to: Recipient email address(es).
body: Optional additional body content.
Returns:
Dict with 'ok' and 'data' fields containing forward result.
"""
if isinstance(to, str):
to = [to]
args = ["message", "+forward", "--id", message_id]
for recipient in to:
args.extend(["--to", recipient])
if body:
args.extend(["--body", body])
result = _run_cli(args)
# Handle two-phase confirmation
if result.get("ok") and result.get("data", {}).get("confirmation_required"):
confirmation_token = result["data"].get("confirmation_token")
if confirmation_token:
args.extend(["--confirmation-token", confirmation_token])
result = _run_cli(args)
return result
def upload_attachment(file_path: str) -> Dict[str, Any]:
"""
Upload a file as attachment.
Args:
file_path: Path to the file to upload.
Returns:
Dict with 'ok' and 'data' fields containing upload result.
"""
args = ["attachment", "+upload", "--file", file_path]
return _run_cli(args)
def download_attachment(message_id: str, attachment_id: str, output_path: Optional[str] = None) -> Dict[str, Any]:
"""
Download an attachment from a message.
Args:
message_id: The message ID.
attachment_id: The attachment ID.
output_path: Optional path to save the file.
Returns:
Dict with 'ok' and 'data' fields containing download result.
"""
args = ["attachment", "+download", "--msg", message_id, "--att", attachment_id]
if output_path:
args.extend(["--output", output_path])
return _run_cli(args)
def get_user_info() -> Dict[str, Any]:
"""
Get current user info and alias list.
Returns:
Dict with 'ok' and 'data' fields containing user info.
"""
return _run_cli(["+me"])
# Convenience function for AI callers
def mail_send(
to: Union[str, List[str]],
subject: str,
body: str,
cc: Optional[Union[str, List[str]]] = None,
bcc: Optional[Union[str, List[str]]] = None
) -> Dict[str, Any]:
"""
Simple send function optimized for AI callers.
This is a simplified wrapper around send_email() for easy AI integration.
Args:
to: Recipient email address(es).
subject: Email subject.
body: Email body (HTML supported).
cc: Optional CC recipient(s).
bcc: Optional BCC recipient(s).
Returns:
Result dict with 'ok' boolean and 'data' or 'error'.
Example:
result = mail_send(
to="[email protected]",
subject="Hello",
body="<p>Hi there!</p>"
)
if result.get("ok"):
print("Email sent successfully!")
else:
print(f"Failed: {result}")
"""
try:
return send_email(
to=to,
subject=subject,
body=body,
cc=cc,
bcc=bcc,
auto_confirm=True
)
except Exception as e:
return {"ok": False, "error": str(e)}
if __name__ == "__main__":
# Demo usage
import sys
if len(sys.argv) < 4:
print("Usage: python agently_mail.py <to> <subject> <body>")
print("Example: python agently_mail.py [email protected] 'Hello' '<p>Hi!</p>'")
sys.exit(1)
result = mail_send(
to=sys.argv[1],
subject=sys.argv[2],
body=sys.argv[3]
)
print(json.dumps(result, indent=2, ensure_ascii=False))
# Agently Mail Python API
Python 封装的 Agent Mail 发信 API,可直接被 AI 调用。
## 快速开始
```python
from agently_mail import mail_send, send_email, list_messages, read_message, search_messages
# 简单发信(推荐 AI 调用)
result = mail_send(
to="[email protected]",
subject="Hello",
body="<p>这是一封测试邮件。</p>"
)
if result.get("ok"):
print("发送成功!")
else:
print(f"发送失败: {result}")
```
## API 函数
### `mail_send()` - 简单发信(AI 调用推荐)
```python
result = mail_send(
to="[email protected]", # 收件人(字符串或列表)
subject="邮件主题", # 主题
body="<p>邮件正文</p>", # 正文(支持 HTML)
cc="[email protected]", # 抄送(可选)
bcc="[email protected]" # 密送(可选)
)
```
### `send_email()` - 完整发信
```python
result = send_email(
to=["[email protected]", "[email protected]"],
subject="会议通知",
body="<p>各位好,</p><p>明天 10 点开会。</p>",
cc=["[email protected]"],
attachments=["./report.pdf"], # 附件
auto_confirm=True # 自动确认发送
)
```
### `list_messages()` - 列出邮件
```python
result = list_messages(limit=10, unread_only=True)
```
### `read_message()` - 读取邮件
```python
result = read_message("msg_xxxxx")
```
### `search_messages()` - 搜索邮件
```python
result = search_messages("关键词", limit=10)
```
### `reply_to_message()` - 回复邮件
```python
result = reply_to_message("msg_xxxxx", "收到,谢谢!")
```
### `forward_message()` - 转发邮件
```python
result = forward_message("msg_xxxxx", to="[email protected]")
```
### `get_user_info()` - 获取用户信息
```python
result = get_user_info()
# 返回邮箱地址、配额、权限等信息
```
## 命令行使用
```bash
python agently_mail.py [email protected] "主题" "<p>正文</p>"
```
## 返回格式
所有函数返回统一格式:
```python
{
"ok": True, # 是否成功
"data": { ... } # 返回数据
}
```
失败时:
```python
{
"ok": False,
"error": "错误信息"
}
```
## 依赖
- Python 3.6+
- agently-cli(已安装并授权)
📁 文件结构
```
agent-mail-guide/
├── README.md # 主文档(安装指南 + 目录)
├── install.sh # 一键安装脚本
├── agent_mail_api.py # Python API 封装(完整)
├── agent_prompt_template.md # Agent 提示词模板
└── examples.py # 使用示例代码
```
📦 内容概览
1. CLI 安装指南 (README.md + install.sh)
• 前置要求检查
• 四步安装流程
• 常用命令速查表
2. Python API 封装 (agent_mail_api.py)
• AgentMailAPI 类:完整封装所有 CLI 操作
• 类型安全:使用 Enum 和 dataclass
• 错误处理:自定义异常类,根据 exit code 分类处理
• 两阶段确认:自动管理 confirmation_token
• 便捷函数:quick_send(), quick_search()
3. Agent 提示词模板 (agent_prompt_template.md)
• 完整系统提示词:可直接用于 Agent 系统提示
• 场景化片段:搜索、发送、回复、下载等场景
• Python 集成提示词:API 使用说明
• 快速集成模板:最小集成 + 完整集成
• 常见问题处理:FAQ 格式
🚀 快速使用
```bash
# 安装
cd agent-mail-guide
bash install.sh
# 授权
agently-cli auth login
# Python 使用
python examples.py
```
所有文档已整理完成,可直接用于其他 Agent 集成!
2026-06-26 08:40:38
最近腾讯推出了 Agent Mail,原本打算体验一番。不过考虑到需要本地运行 Agent,多少还是有点折腾。
如果你只是想体验 AI Agent 在终端中的能力,其实华为云还有一个容易被忽略的产品:AI Shell。
无需本地部署,打开浏览器即可使用,体验相当不错。
https://developer.huaweicloud.com/aishell.html
云端作业环境一键拉起,开箱即用 一键快速拉起专属云端作业环境,预置AI CLI、精选华为云资源管理最佳实践等技能,无需复杂配置,开箱即用。容器运行环境免费使用,搭载多款预置大模型,轻松开展各类云上作业。
AI Shell 本质上就是一个集成 AI 能力的 Web Shell。
打开浏览器即可获得一台云端 Linux,无需安装任何环境,同时还内置了 AI CLI 和华为云 Skills。
你可以直接通过自然语言让 AI 帮你执行 Shell 命令,也可以退出 AI Chat,当成一台普通 Linux 使用。
这里华为云深度集成了自家的Skills(skills.huaweicloud.com)
每个账户同时可打开 3 个 Shell(相当于同时拥有 3 台临时云端 Linux服务器)。
每个 Shell 默认有效期 6 小时,到期前可点击 延期 按钮继续使用,否则容器会自动销毁。
4核心 + 7G内存 + 130G磁盘 + Huawei Cloud EulerOS 2.0 系统 + 北京数据中心
----------------------------------------------------------------------
CPU Model : CPU model not detected
CPU Cores : 4 @ 2900.0000 MHz
AES-NI : ✓ Enabled
VM-x/AMD-V : ✗ Disabled
Total Disk : 136.1 GB (8.6 GB Used)
Total RAM : 7.2 GB (990.6 MB Used)
System Uptime : 3 days, 5 hour 9 min
Load Average : 0.22, 0.20, 0.18
OS : Huawei Cloud EulerOS 2.0 (aarch64)
Arch : aarch64 (64 Bit)
Kernel : 5.10.0-182.0.0.95.r3353_273.hce2.aarch64
TCP Congestion Ctrl: cubic
Virtualization : DOCKER
IPv4/IPv6 : ✓ Online / ✗ Offline
Organization : AS55990 Huawei Cloud Service data center
Location : Beijing / CN
Region : Beijing
----------------------------------------------------------------------
I/O Speed(1st run) : 187 MB/s
I/O Speed(2nd run) : 156 MB/s
I/O Speed(3rd run) : 156 MB/s
I/O Speed(average) : 166.3 MB/s
----------------------------------------------------------------------
Node Name Upload Speed Download Speed Latency
Speedtest.net 47.75 Mbps 47.82 Mbps 4.68 ms
Los Angeles, US 47.77 Mbps 47.60 Mbps 186.09 ms
Dallas, US 47.79 Mbps 0.48 Mbps 208.01 ms
Montreal, CA 47.79 Mbps 0.98 Mbps 242.41 ms
Paris, FR 47.76 Mbps 46.06 Mbps 259.33 ms
Amsterdam, NL 47.80 Mbps 1.71 Mbps 288.57 ms
Suzhou, CN Test failed
Ningbo, CN Test failed
Hong Kong, CN 2.61 Mbps 9.74 Mbps 45.44 ms
Singapore, SG 15.29 Mbps 50.64 Mbps 180.75 ms
Taipei, CN 47.77 Mbps 14.63 Mbps 165.67 ms
Tokyo, JP 1.58 Mbps 49.88 Mbps 222.86 ms
----------------------------------------------------------------------
Finished in : 7 min 44 sec
Timestamp : 2026-06-25 22:43:07 CST
----------------------------------------------------------------------
1、首次打开 Shell
首次进入 AI Shell 时,默认会进入 AI Chat 模式。你可以直接通过自然语言与 AI 对话,让它在 Shell 中执行相应的命令,无需手动输入复杂的终端指令。
2、切换到普通 Shell
如果不想使用 AI Chat,只需连续按 两次 Ctrl + C 即可退出聊天模式,返回到普通的 Shell 界面。之后就可以像使用普通 Linux 终端一样,自由执行各种命令。
下面是一段可用于【篡改猴】的脚本,每2小时自动点击延期按钮。
// ==UserScript==
// @name Refresh Auto Click
// @namespace https://51.ruyo.net
// @version 1.0
// @description 每2小时自动执行一次点击
// @author malaohu
// @match https://devstation.connect.huaweicloud.com/*
// @grant none
// ==/UserScript==
(function () {
'use strict';
// 执行点击
function autoClick() {
console.log("[AutoClick] " + new Date().toLocaleString() + " 开始执行...");
const el = document.getElementsByClassName("bottom-content")[0]?.childNodes[1];
if (el) {
el.click();
console.log("[AutoClick] 点击成功");
} else {
console.log("[AutoClick] 未找到目标元素");
}
}
// 页面加载完成后等待12秒执行第一次
window.addEventListener('load', () => {
setTimeout(() => {
autoClick();
// 之后每2小时执行一次
setInterval(autoClick, 2 * 60 * 60 * 1000);
}, 12000);
});
})();
应该有不少童鞋第一次用Tampermonkey(篡改猴),其实我就是第一次用。简单快速介绍步骤。
1,安装扩展程序,地址:https://u1.cm/ENWSY3
2,如果该扩展没被启动?访问 chrome://extensions/ 启用下
3,篡改猴扩展 - 右键 - 管理扩展程序 - 允许运行用户脚本 - 开启
4,篡改猴扩展 - 鼠标单击 - 添加新脚本
5,粘贴上面的脚本即可,记得启用该脚本
6,刷新一下AI Shell 的界面(必须是页面重新加载)即可触发自动脚本
如果你想体验 AI + Terminal,但又不想折腾本地环境,那么华为云 AI Shell 确实是一个不错的选择。
相比需要本地部署的方案,它真正做到了开箱即用:打开浏览器就是一台 Linux,AI Chat、Shell、Skills 都已经准备好了。对于临时开发、运维排障、脚本测试甚至学习 Linux,都非常方便。
另外,本文也分享了一个简单的 Tampermonkey 保活脚本,可以自动帮你点击延期按钮,避免频繁手动续期。
感兴趣的话,不妨亲自体验一下,也欢迎在评论区分享你的使用感受。
2026-06-25 08:40:03
Wasmer 是一个上手简单、部署便捷的云应用托管平台,支持 GitHub 一键部署、文件上传部署以及多种官方模板快速创建项目。
免费版提供 3 个应用、100GB+ 级别的月度资源额度以及自定义域名功能,对于个人开发者、学生和技术爱好者来说已经足够用于学习、测试和项目演示。
https://wasmer.io/signup
账号注册支持Google账号 和 Github直接授权登录!该平台可不登录直接部署,不登录的话部署的站点仅1小时有效。
免费版本:Hobby - free
| 项目 | 免费额度 |
|---|---|
| 月费 | 免费 |
| 成员数 | 1 人 |
| 应用数量 | 3 个 |
| 请求数(Requests) | 100,000 次/月 |
| 带宽流量 | 150 GB/月 |
| Compute Hours | 100 小时 |
| Active CPU Hours | 50 小时 |
| 存储空间 | 1 GB |
| 数据库 | 每个 App 1 个数据库,总计 100 MB |
| 自定义域名 | 50 个 |
| Build Minutes | 500 分钟 |
| CDN | 全球 Edge Network |
| SSL | 免费自动配置 |
| 日志保留 | 1 天 |
| 支持 | Community Support |
1,注册登录平台后,访问地址:https://wasmer.io/new
2,可以选择上传文件夹;也支持直接Github授权部署;也可以选择模板部署支持WP,Flask等等;
3,可设置打包编译方式等
4,部署成功了!
5,访问Domains,添加要绑定的域名。按要求添加解析即可!
ruyonet.wasmer.app
wordpress-7311c.wasmer.app
绑定域名:wasmer.ruyonet.kdns.fr
目前Wasmer 的运行时环境几乎支持所有其他编程语言
不过需要注意的是,免费套餐在计算资源、存储空间以及日志保留时间方面存在一定限制,更适合用于开发测试、个人展示和功能验证,不建议直接承载高并发或生产级业务。
2026-06-23 22:36:57
EdgeOne Pages 已正式升级为 EdgeOne Makers!
除了原有的 Web 应用托管能力外,我们新增了 AI Agent 托管能力,帮助开发者将 GitHub 上的 Agent 项目快速部署上线,获得可直接分享给用户体验的 Demo 站点。
目前支持 OpenAI Agents SDK、Claude Agent SDK、LangGraph、CrewAI 等主流 Agent 开发框架,开发者无需自行配置服务器即可完成部署。
国内地址:https://cloud.tencent.com/act/pro/edgeone-makers-agent?from=30102
海外地址:https://pages.edgeone.ai/zh/solutions/ai-agent?activity=ruyo
当前官方推出“限时加码”活动,参与活动并填写邀请码 31278891,即可领取最高 50 万 Token 资源。
1,首次访问需要授权开通服务!
2,本次测试选择官方提供的 OpenAI Agent Starter 模板进行部署演示。
3,必须选择一个Git平台支持Github,GitLab,Gitee等才能继续。
4,完成仓库授权和基础配置后,按照向导提示继续操作,系统会自动完成构建与部署,整个过程仅需几分钟。
5,部署完成后,系统会自动生成预览地址,用户可直接通过浏览器访问并体验 Agent 功能。如需长期使用可绑定自定义域名!
从实际体验来看,EdgeOne Makers 的 AI Agent 托管流程相对简单,开发者无需关注服务器部署、域名配置等运维工作,只需连接代码仓库即可快速获得可访问的演示站点。
对于希望快速验证 Agent 产品原型、展示项目成果或进行团队协作演示的开发者而言,是一个较为便捷的选择。
当前官方活动期间还可领取额外 Token 资源,感兴趣的开发者可以体验一下。
2026-06-18 08:40:37
26年6月23日更新:实测UU远程控制内网设备优先走内网,不过必须得有公网登录账号,完成打洞后才可使用。
2023年博主曾推荐过RustDesk,自建使用非常方便!历史文章:远程控制软件RustDesk自建服务器全平台部署及使用教程
自建前提你得有一个公网的服务器,没有?推荐使用免费的:网易UU远程,可能是目前最好的免费远程控制软件
UU远程目前还是非常良心的!登录同一个账号的设备都可相互远程,也可以远程控制未登录账号的设备!
从去年年底开始,“养小龙虾”突然火了起来,Mac mini 一度卖到缺货。我也终于忍不住入手了一台。
其实去年丐版价格降到2800多元时就有点心动,但总觉得用处不大,一直没下手。没想到兜兜转转,最后还是买了。
这台Mac mini是 M4芯片 + 32G内存 + 256G硬盘,使用了教育优惠+国补 5609元入手!
之前也折腾过小龙虾,但实际体验只能说一般。服务状态经常不太稳定,不是掉线就是连接异常。
最近随着大家基本都人手一个 OpenAI K12,美国大兵,Go订阅 等等,Codex 的讨论度和口碑也明显提升了不少。电脑里的反重力突然不香了!
不过我很快遇到了一个问题,家里的 Windows 用的是 LTSC 版本,无法安装 Codex。
公司的电脑是Win 11,但博主2023年就把自动更新彻底关了。
Microsoft Store 也处于不可用状态,结果折腾半天还是没能装上 Codex。
哎,这类型的软件针对Mac一般都兼容特别好,这下Mac mini 用上了!!!
Mac mini 放在家里!在公司可通过UU远程访问。速度感觉还行。
在家里访问Mac,也用UU远程确实有点浪费?在内网能不能远程Mac呢?
第一时间想到的就是 RustDesk,之前就知道它支持局域网直连。而且不需要搭建中转服务器。
RustDesk 只需简单设置几步,就能让局域网内其他设备直接连接。
第一步:被控端,设置 - 安全 - 勾选 允许IP直接访问,端口保持默认的21118。
第二步:主控端,直接输入被控端的内网IP,点击连接即可!
第三步:连接成功后即可开始远程控制,操作十分流畅。
1,简单,方便,只能内网互通即可
2,如内网上游想访问子网的电脑?仅需将 21118 TCP/UPD协议转发到子网的IP设备即可,大部分路由器都支持。
3,RustDesk IP直连模式适用于局域网环境。如果跨公网访问可试一试内网穿透(风险大!谨慎!)
4,如果连接失败,请检查被控设备系统防火墙是否放行 RustDesk,Windows 防火墙、macOS 防火墙均可能拦截 21118 端口通信。