巡星人
天文行动派

连接外网的方法分享

第一步:在腾讯云上购买海外轻量云服务器,地点建议在新加坡,最便宜的即可。

访问:https://cloud.tencent.com/

选择产品->轻量应用云服务器

选择 中国香港和其他境外地域:

点击立即购买,会提示登录,用微信扫码登录。

选择基于操作系统镜像,选择Ubuntu 20的版本。

地点选择亚太,新加坡,30元/月即可,也可以升级到其他档次。

购买成功后,点击查看示例,即可在工作台中查看服务器的运行状态。

一般过1分钟,服务器就会分配好。

点击这个服务器,选择一键登录

点击登录即可进入到后台命令行界面,到时可能会提示安装orcaterm,确认安装即可。

注意在防火墙上增加规则,允许所有的数据包通过,方便调试,后面再进行详细修改。

第2步: 在ubuntu服务器上安装软件,经过测试有3种方式。

方法1:Zerotier+Squid

该方法可以实现手机和电脑上网。

1.1 海外ubuntu服务器安装ZeroTier

切换到root管理员:

sudo -i

也可以手动设置管理员密码,可以用putty,mtputty等SSH客户端软件登录。

sudo passwd root

nano /etc/ssh/sshd_config,设置为允许root远程登录:
找到PermitRootLogin prohibie-password 修改为:
PermitRootLogin yes
ctrl+O保存后,重启sshd服务:
/etc/init.d/ssh restart

安装zerotier:
curl -s https://install.zerotier.com | sudo bash

登录到https://my.zerotier.com/,注册账号,新建个网络,获得zerotierID。
加入网络
zerotier-cli join zerotierID

注意在Zerotier后台,如果选择了PrivateNetwork,要手动批准该节点加入。

输入ifconfig,即可知道zerotier对应的虚拟网卡名称,以及分配的IP地址的子网掩码,记住这些信息,下面会用到。

1.2 海外ubuntu服务器安装squid代理软件

sudo apt update
sudo apt upgrade

sudo apt install squid

sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.bak

修改文件权限,这样可以覆盖修改:

chmod -R 777 /etc/squid/squid.conf

编辑/etc/squid/squid.conf配置文件:

腾讯云后台对文本编辑器的支持不好,尤其一些查找命令和关闭网页冲突了。

建议下载文件到本地电脑上修改,或者通过putty等客户端软件用nano/vi来修改。

修改默认的端口号3128,比如9999(可以自己定义,大概在1908行),这样安全些。

http_port 9999

把zerotier的网卡ip网段加入到允许列表。(大概在1409行)

acl localnet src 10.243.0.0/255.255.0.0
http_access allow localnet

保存,在刚才的文件,上传到服务器上。

service squid restart

1.3 PC端安装zerotier:https://www.zerotier.com/download/

在任务栏图标的joint network 输入之前的zerotierID。

注意在Zerotier后台,如果选择了PrivateNetwork,要手动批准该节点加入。

在命令行里输入ping 服务器Zerotier ip地址进行测试。

在网络和Internet设置->代理设置代理服务器,IP地址服务器Zerotier ip地址,端口号是squid配置文件的端口号。

另外,也可以在chrome/Edge浏览器中安装SwitchyOmega插件,这样可以方便切换代理服务,也可以直接连接,不用在系统中修改。

1.4 手机端使用Zerotier的方法

1)在Zerotier后台增加0.0.0.0/0指向海外服务器IP的路由。

海外ubuntu要打开转发功能,在做如下操作之前,最好在腾讯云服务器后台用快照备份下当前的系统。

输入ifconfig,得到zerotier对应的虚拟网卡标识Zerotier_Card

输入:

PHY_IFACE=eth0
ZT_IFACE=ztxxxxxxx(上面的网卡名称)

sudo iptables -t nat -A POSTROUTING -o $PHY_IFACE -j MASQUERADE
sudo iptables -A FORWARD -i $ZT_IFACE -o $PHY_IFACE -j ACCEPT
sudo iptables -A FORWARD -i $PHY_IFACE -o $ZT_IFACE -m state --state RELATED,ESTABLISHED -j ACCEPT

sudo apt install iptables-persistent

注意安装上述软件时,提示都选Y。

保存路由表:
sudo bash -c iptables-save > /etc/iptables/rules.v4

注意生效需要服务器的更新,速度比较慢,如果访问不了外网,可以过一段时间再试。

手机端下载zerotier应用,注意ios需要采用国外的id。新建个Network,输入ZerotierID,注意要打开Enable Default Route,会提示安装V*P*N,选择Yes.

一般打开网络10秒钟,手机会出现相关的网络标识,即可访问外网了,所有的流量都通国外的服务器路由出去。

安卓手机目前可以连接成功,但是无法访问外网,估计app有bug。

方法2:Tailscale+Squid

该方法可以实现手机和电脑上网。

-海外服务器安装tailscale:

推荐采用docker方式安装,这样不会和本身的网页服务器发生冲突。

首先安装docker环境:

Install Docker Engine on Ubuntu | Docker Documentation

sudo apt-get update
sudo apt-get install ca-certificates curl gnupg

sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt-get update

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

测试下:

sudo docker run hello-world

登录到https://login.tailscale.com/,注册账号,推荐用github。

在setting->key->auth keys,点击Generate Keys,复制这个Auth key.

安装tailscale

sudo docker run -d --name=tailscaled -v /var/lib:/var/lib -v /dev/net/tun:/dev/net/tun --network=host --cap-add=NET_ADMIN --restart unless-stopped --cap-add=NET_RAW --env TS_AUTHKEY=[AUTH KEY] --env TS_EXTRA_ARGS=--advertise-exit-node  --env TS_STATE_DIR=/var/lib/tailscale tailscale/tailscale

在tailscale后台就会出现这台服务器,exit node上面有个感叹号,说明没有启用。

点击右边的省略号,选择edit route setting,启用exit node即可。

PC端:https://tailscale.com/download,下载即可,采用github账号登录。把Exit Node打开即可上外网。也可以在海外服务器上安装squid代理软件进行上网。

手机端:下载相应的客户端,注意ios需要采用国外的id。打开exit node.

方法3:Netbird+Squid

该方法可以实现电脑上网,手机端没有相关app,因此无法直接上网,不过可以在家里采用单独一台电脑安装squid采用二级代理的方式上外网。

网址:netbird.io

优点:安装比较简单,配置简单,用github账号登录关联。注意ubuntu版本下面需要下载.deb文件安装。源码开源,可以自己搭建服务器。基于wireguard开发。

sudo apt-get update
sudo apt-get install ca-certificates curl gnupg -y
curl -sSL https://pkgs.wiretrustee.com/debian/public.key | sudo gpg --dearmor --output /usr/share/keyrings/wiretrustee-archive-keyring.gpg
echo 'deb [signed-by=/usr/share/keyrings/wiretrustee-archive-keyring.gpg] https://pkgs.wiretrustee.com/debian stable main' | sudo tee /etc/apt/sources.list.d/wiretrustee.list

sudo apt-get update

https://github.com/netbirdio/netbird/releases/tag/v0.10.2

wget https://github.com/netbirdio/netbird/releases/download/v0.10.2/netbird_0.10.2_linux_386.deb

dpkg -i netbird_0.10.2_linux_386.deb

安装后:

netbird up

之后会出现一个网址,然后用github账号关联。如果第一次没有激活成功,则用命令:

netbird up --setup-key <SETUP KEY>

Setup Key通过登录netbird后台生成。

之后用如下命令查看信息

netbird status -d

按照上面的方法安装squid。

PC端:采用代理服务器上网。

手机端:采用一个单独的电脑(和手机端在同一个wifi下面)安装Netbird和squid,

把http_port改为其他好记的端口号:

http_port 9999

在squid.conf中增加如下内容

cache_peer 代理服务器IP地址 parent 9999(端口号) 0 no-query no-digest
never_direct allow all

手机端要手动设置下wifi,配置代理,服务器的IP地址为二级代理的电脑的局域网IP地址,端口号采用上面的设置。

总结:

推荐Tailscale>Zerotier>Netbird,访问外网的速度差别不大,主要受限于运营商网络的带宽。

Tailscale安装设置比较简单,并且连接V*P*N很快。

Zerotier用的比较广泛,而且可以自己搭建服务器,更加灵活,缺点是登录V*P*N速度稍微慢些,但是上网速度没有差别;另外安卓手机目前无法使用。

Netbird是个冷门软件,可以作为上面2个的备份方案,缺点是没有手机端的app。

未经允许不得转载:巡星人 » 连接外网的方法分享

分享到:

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  页面加载75次查询,加载时间0.180秒