Reading view

There are new articles available, click to refresh the page.

解决在 Openvpn 客户端中部署的 Web 服务不可用的问题

遇到这样一个蛋疼的问题,我有一台服务器,上面部署了一个 web 服务,同时我也想把这个服务器作为客户端连入一个 OpenVPN 虚拟网络,并且我希望服务器上的程序能够通过 OpenVPN 的网关来访问外部网络,这主要是为了隐藏服务器的身份。但是在 OpenVPN 连接之后,原有的 Web 服务将无法访问。通过调试分析可以法线,造成这一现象的原因是 Web 服务的响应包也被路由配置路由到 OpenVPN 的 tun0 接口中。这导致响应无法返回给原来的请求服务器。如何解决这个问题呢?

如果你在网络上搜索这类问题你会发现各种文章给出的方案一般都是为 OpenVPN 的配置文件添加 route-nopull 选项来阻止 OpenVPN 设置客户端路由,但是这会导致客户端的对外访问无法通过 VPN 进行。事实上,从 IP 路由的角度来看,如果我的服务器是 A,而某个访问 Web 服务的 IP 是 B,同时 B 也可能是 A 试图访问的外部的目标服务提供者。对传输层路由而言,A 给 B 的 Web 服务响应和 A 主动发往 B 的请求是无法区分的。从这个角度来看,要达成 inbound 和 outbound 流量分别路由似乎是不可能的。

但是其实我们有一个突破点:那就是 Web 服务总是在本机使用固定的端口和请求者通信,我们可以通过端口来区分 inbound 和 outbound 流量。首先我们输入下面的命令:

1
iptables -t mangle -A OUTPUT -p tcp -m multiport --sports 80,443 -j MARK --set-mark 1

在这个命令中,我们会让路由表观察从本地的 80 和 443 端口发出的包,并给这些包打上一个特定的标签(--set-mark 1 的作用)。然后输入下面的命令:

1
ip route add default via [gateway addr of eth0] dev eth0 table 100

这个命令会创建一个新的路由表 table 100,然后在这个表中加入一个默认路由,将流量送往原有的网关。然后再运行下面的命令:

1
ip rule add fwmark 1 table 100

这个命令会让带有标记 1 的包使用 table 100 路由表进行路由。运行完上面的配置后,web 服务就可以正常访问呢了。


以上方法是在 ChatGPT 的协助下摸索出来的,我的提问是:

如何通过 iptables 或者 route 命令,让访问 80 与 443 端口的包使用 tun0 接口,而访问其他端口的包使用 eth0 接口?

GPT 的回答是

可以使用iptables和route命令结合起来实现此目的。具体操作如下:

首先需要添加一条规则,将访问80和443端口的包标记为一个特定的标记值(比如"1"),使用tun0接口发送出去。iptables规则如下:

1
iptables -t mangle -A OUTPUT -p tcp -m multiport --dports 80,443 -j MARK --set-mark 1

接着需要添加一条规则,将标记为"1"的包使用tun0接口发送出去。route命令如下:

1
2
ip route add default dev tun0 table 100
ip rule add fwmark 1 table 100

最后需要添加一条规则,将所有未被标记的包使用eth0接口发送出去。route命令如下:

1
ip route add default dev eth0

以上三个步骤分别实现了:将访问80和443端口的包标记,并使用tun0接口发送出去;将标记为"1"的包使用tun0接口发送出去;将所有未被标记的包使用eth0接口发送出去。这样就实现了访问80和443端口的包使用tun0接口,访问其他端口的包使用eth0接口的效果。

Meta AI 官方机器人使用教程,从注册、聊天到生成图片实测

DUN.IM BLOG

DUN.IM BLOG

我们还年轻,可不想看到这个世界处在毫无自由、隐私的边缘。

Meta 正式宣布推出新一代 AI 大型语言模型 Llama 3 后,也同步推出 Meta 聊天机器人,能够根据用户问题进行回应,能依照文字描述生成或制作动画与 GIF 图片。

想免费使用 Meta AI 聊天机器人可以通过本文介绍了解,告诉你如何使用 Meta 最新的 Llama 3 模型,而且还支持中文聊天对话,让你免也能使用脸书 Meta AI 聊天和生成图片服务。

Use Meta AI assistant to get things done, create AI-generated images for free, and get answers to any of your questions. Meta AI is built on Meta's latest Llama large language model and uses Emu, our…

不管是手机、平板或电脑都能使用 Meta AI 聊天功能,只要通过打开 Meta AI 网站后,点击「Log in with 」登入 FB 账号。

目前 Meta AI 聊天机器人仅开放美国、澳大利亚、加拿大、加纳、牙买加、马拉维、新西兰、尼日利亚、巴基斯坦、新加坡、南非、乌干达、赞比亚和津巴布韦国家才能使用。

尚未开放国家要使用 Meta AI 功能,可以通过 DUN.IM 匿名服务连接美国地区就可以使用 Meta AI 功能,不管是电脑版或手机版都可以。

当进入 VPN 后,刷新 Meta AI 网页就正常显示 Meta AI 聊天界面。

其实 Meta AI 聊天功能与 或 Claude AI 界面很像,只要在聊天室框内输入想要问的问题,像是规划活动行程之类问题,可以直接用中文提问,Meta AI 同样看得懂也能回答。

目前 Meta AI 算是测试版本阶段,默认都会是以英文回应,要是想要用中文回答,就要在问题后面加入「请用中文回答」Meta AI 才会直接改用中文回复,或者也可以直接打「后续都要用中文回答每个问题」,但容易会跳回英文会应。

测试用 Meta AI 来规划马祖四天三夜活动行程,其实在行程规划的算是不错,会列出每天上午、下午和晚上行程建议。

同时也测试看看 Meta AI 对于未来大盘走势,Meta Llama 3 会直接说无法预测未来走势,同时还会给出影响股市因素,以及提醒投资不要单纯依照预测和猜测。

Meta AI 也同样能够支持生成 AI 图片功能,不过这点就需要完全用英文描述〔Promp〕才能生成,直接输入后就会立即生成 4 张不同 AI 图片。

像是我直接要求 Meta AI 生成哥斯拉大战进击的巨人图片,图片在精致度和光影效果都算不错。

也可以要求 Meta AI 生成漫威黑寡妇穿旗袍图片,聊天机器人生成人物图片同样也是没太大问题。

通过 Meta AI 生成的图片,可以点击右上角「•••」点击「Download image」就可以下载到设备,每张图片大小也算是 1280×1280 高分辨率,基本这功能与 Meta Imagine 功能几乎是完全一样,图片左下角都会加入水印。

以上就是 Meta 最新语言模型 Meta Llama 3 使用方法,目前官方仅开放部分国外地区使用,未来也会陆续开放到更多国家,包含 Meta Imagine AI 生成图片功能,能依照文字描述来回答和生成各种图片。

未来 Meta 也计划将 Meta AI 延伸到 WhatsApp 聊天、Ray-Ban Meta 眼镜与 Meta Quest 设备上。

您的电子邮箱地址不会被公开。 必填项已用 * 标注

❌