1
Lentin 2023-04-21 22:41:49 +08:00 via iPhone 1
换 zerotier 有奇效🐶
|
2
kokutou 2023-04-21 22:43:19 +08:00 via Android
家里有 upnp 可以打洞。。。
盲猜公寓和公司没打洞成功 |
3
neroxps 2023-04-22 09:34:26 +08:00
udp 通信特别是跨运营商,MTU 超过一定大小就会被干,改小一点 MTU 试试。wg 里能配 MTU 。
|
4
delpo 2023-04-22 14:20:35 +08:00 via Android
你先看看是直连还是中转,后者的话卡顿才是正常的,毕竟服务器在国外
|
6
geekyouth OP 正在试用 zerotile
|
7
neroxps 2023-04-23 21:05:16 +08:00 via iPhone
@geekyouth
是的,Tailscale 可以修改 MTU(最大传输单元)设置。 根据 Tailscale 官方文档,可以通过两种方式修改 MTU: 1. 在 Tailscale 节点上直接设置 MTU: bash # Set MTU to 1200 bytes sudo ip link set tailscale0 mtu 1200 这将直接设置 Tailscale 接口`tailscale0`的 MTU 为 1200 字节。 2. 在 Tailscale 配置文件中指定 MTU: 在每个节点上的`/etc/tailscale/tailscaled.conf`文件中添加以下配置: [Interface.tailscale0] MTU = 1200 然后重启 Tailscale 服务使配置生效: bash sudo systemctl restart tailscaled 官方文档中给出的示例片段为: [Interface.tailscale0] # MTU size for the Tailscale interface. Default is 1500. # MTU = 1400 注释中提到,如果未指定 MTU,默认值为 1500 字节。 设置 MTU 的大小可以根据您的网络环境进行调整。降低 MTU 可以避免链路之间的碎片,提高 MTU 可以减少开销和提高吞吐量。 我希望 Tailscale 官方文档中的这两个 MTU 设置方法及说明能满足您的要求。如果在配置或使用 Tailscale 时遇到任何其他问题,也请随时告诉我。我会尽最大努力为您解答所有问题。 |
8
geekyouth OP |
9
geekyouth OP You:
tailscale win10 修改 MTU 设置,降低默认值 ChatGPT: 在 Windows 10 上修改 Tailscale 的 MTU (最大传输单元)设置可以通过以下步骤完成: 1. 打开命令提示符:点击开始菜单,输入 "cmd" ,然后右键点击 "命令提示符",选择 "以管理员身份运行"。 2. 查找 Tailscale 网络适配器的名称。输入以下命令: ``` netsh interface ipv4 show interfaces ``` 在显示的列表中,找到 Tailscale 网络适配器。通常它的名称类似于 "Tailscale" 或 "Tailscale Tunnel"。 3. 记下 Tailscale 网络适配器的索引( Idx )号。 4. 修改 Tailscale 网络适配器的 MTU 设置。输入以下命令,将 `<Idx>` 替换为你在上一步找到的索引号,将 `<new_MTU_value>` 替换为你想要设置的新 MTU 值: ``` netsh interface ipv4 set subinterface <Idx> mtu=<new_MTU_value> store=persistent ``` 例如,如果索引号为 12 ,你希望将 MTU 设置为 1300 ,那么命令将是: ``` netsh interface ipv4 set subinterface 12 mtu=1300 store=persistent ``` 5. 重启 Tailscale 服务以使更改生效。打开 "任务管理器",找到 "Tailscale" 服务,然后右键单击并选择 "重启"。或者在命令提示符中输入以下命令: ``` net stop tailscale net start tailscale ``` 完成以上步骤后,Tailscale 的 MTU 值已经被更改。请注意,修改 MTU 值可能会影响网络性能。如果在降低 MTU 设置后遇到任何问题,请尝试将其还原为默认值(通常为 1500 )并重新启动 Tailscale 服务。 You: 如何通过配置文件修改 ChatGPT: Tailscale 目前在 Windows 上不支持通过配置文件直接修改 MTU 。但是,你可以创建一个简单的批处理脚本( batch script )来实现此功能。 以下是一个批处理脚本示例,用于修改 Tailscale 网络适配器的 MTU 设置。请将 `<new_MTU_value>` 替换为你想要设置的新 MTU 值。 1. 打开记事本或其他文本编辑器,创建一个新文件。 2. 将以下内容复制并粘贴到新文件中: ``` @echo off set new_MTU_value=<new_MTU_value> for /f "tokens=1,4" %%a in ('netsh interface ipv4 show interfaces ^| findstr /i "tailscale"') do ( netsh interface ipv4 set subinterface %%a mtu=!new_MTU_value! store=persistent ) net stop tailscale net start tailscale ``` 3. 将 `<new_MTU_value>` 替换为你想要设置的新 MTU 值。例如,如果你希望将 MTU 设置为 1300 ,那么该行应更改为 `set new_MTU_value=1300`。 4. 保存文件,扩展名为 ".bat",例如 "change\_tailscale\_mtu.bat"。 5. 以管理员身份运行此批处理脚本。右键单击 ".bat" 文件,然后选择 "以管理员身份运行"。脚本将自动修改 Tailscale 网络适配器的 MTU 设置并重启 Tailscale 服务以使更改生效。 请注意,此脚本需要以管理员权限运行,以便修改网络适配器设置和重启 Tailscale 服务。如果在降低 MTU 设置后遇到任何问题,请尝试将其还原为默认值(通常为 1500 )并重新启动 Tailscale 服务。 You: 本地端修改了,远程机器也要改吗? ChatGPT: 当你修改本地计算机上的 Tailscale MTU 设置时,你可能还需要在远程计算机上进行相同的修改,以确保它们之间的通信不受影响。 如果本地计算机和远程计算机之间的 Tailscale 链接发生问题,建议将远程计算机的 MTU 设置更改为与本地计算机相同的值。 如果远程计算机运行的是 Windows ,你可以按照前面提供的方法修改 MTU 设置。如果远程计算机使用的是其他操作系统,例如 Linux 或 macOS ,请参考相应系统的 MTU 更改方法。在大多数情况下,确保本地计算机和远程计算机的 MTU 设置匹配是很重要的,这有助于确保它们之间的通信顺畅。 需要注意的是,修改 MTU 设置可能会影响网络性能,所以在进行更改后,请密切关注网络性能和连接稳定性。如果遇到任何问题,请尝试将 MTU 设置还原为默认值(通常为 1500 )并重新启动 Tailscale 服务。 |
10
geekyouth OP 我使用 tailscale 从办公室远程连接公寓的电脑,相比于连接跨省的老家的电脑,公寓虽然很近,但是延迟特别高,质量很差。
不过换成 zerotier 就好太多了。 现在问题是 zerotier 如何内网穿透?暴露 http 端口 到公网之上。 |
11
geekyouth OP You:
zerotier 如何内网穿透?暴露 http 端口 到公网之上 ChatGPT: 要使用 ZeroTier 实现内网穿透并将 HTTP 端口暴露到公网,你需要完成以下步骤: 1. 注册 ZeroTier 账户:访问 ZeroTier 官网(<https://www.zerotier.com/)并注册一个新账户。完成注册后,登录到> ZeroTier 管理界面。 2. 创建网络:在管理界面中,点击 "Create a Network"。这将生成一个新的 ZeroTier 网络,同时会显示一个网络 ID 。 3. 安装 ZeroTier 客户端:根据你的操作系统(如 Windows 、macOS 、Linux )下载并安装适当的 ZeroTier 客户端。在计算机上安装 ZeroTier 客户端后,启动客户端并加入刚刚创建的网络。为此,输入你在步骤 2 中获得的网络 ID ,然后点击 "Join"。 4. 授权设备:回到 ZeroTier 管理界面,你将在 "Members" 列表中看到你的设备。将设备的 "Auth?" 复选框选中,表示允许该设备加入 ZeroTier 网络。 5. 配置端口转发:现在,你需要配置一台具有公共 IP 地址的互联网设备(例如 VPS 、云服务器或具有公网 IP 的路由器)以转发 HTTP 端口(通常为 80 或 443 )。你需要将公网设备上的 HTTP 端口转发到通过 ZeroTier 分配给你本地计算机的 IP 地址。端口转发的配置过程因设备和操作系统而异。如果你使用的是云服务器或 VPS ,可能需要在其防火墙设置中添加相应的规则。 6. 访问 HTTP 服务:完成端口转发设置后,你可以通过公网设备的 IP 地址访问本地计算机上的 HTTP 服务。在浏览器中输入 `http://<公网设备 IP>:<HTTP 端口>`,你应该能看到本地计算机上运行的 HTTP 服务的响应。 请注意,端口转发可能会导致安全隐患。确保你已采取适当的安全措施,如使用 HTTPS 、保护端口和限制 IP 访问等。 You: 我没有带公网 ip 的设备 ChatGPT: 如果没有带公网 IP 的设备,你可以使用第三方的穿透服务,如 ngrok 、frp ( Fast Reverse Proxy )等。这里以 ngrok 为例,介绍如何在没有公网 IP 设备的情况下实现内网穿透。 1. 注册 ngrok 账户:访问 ngrok 官网(<https://ngrok.com/)并注册一个新账户。完成注册后,登录到> ngrok Dashboard 。 2. 下载 ngrok 客户端:在 ngrok Dashboard 中找到适合你操作系统的 ngrok 客户端(例如 Windows 、macOS 、Linux 等),然后下载并解压。 3. 配置 ngrok:在解压后的 ngrok 文件夹中,找到 `ngrok.yml` 文件(如果不存在,请创建一个)。打开该文件并输入以下内容: ``` authtoken: <your_auth_token> tunnels: http: proto: http addr: <your_local_http_port> ``` 将 `<your_auth_token>` 替换为在 ngrok Dashboard 中找到的授权令牌。将 `<your_local_http_port>` 替换为本地计算机上运行的 HTTP 服务的端口号(例如 80 、8080 等)。 4. 启动 ngrok:打开命令提示符( Windows )或终端( macOS 、Linux ),然后导航到解压后的 ngrok 文件夹。运行以下命令启动 ngrok: ``` ./ngrok start --config ngrok.yml http ``` 5. 获取公网访问地址:启动 ngrok 后,它会生成一个公网访问地址,如 `http://random-subdomain.ngrok.io`。你可以在命令提示符或终端窗口中看到该地址,或在 ngrok Dashboard 中找到。将这个地址用于访问本地计算机上运行的 HTTP 服务。 通过这种方法,你可以在没有公网 IP 设备的情况下实现内网穿透。但是,ngrok 是一项付费服务,免费用户可能会受到限制,例如连接数限制、随机子域名等。如果需要更高级的功能,可以考虑升级到付费计划。 |