文章介绍:本篇主要内容如下:
①云上Vultr安装Vyos作为服务器端;
②本地VMware ESXi安装Vyos作为客户端;
③云上Vultr中的Vyos运行GoBGP给本地VMware ESXi中的Vyos下发路由,实现路由分流;
④本地VMware ESXi中的Vyos运行SmartDNS,实现DNS分流,规避DNS污染。
一、上传镜像至Vultr {#一-上传镜像至Vultr}
vultr注册登录这里不做介绍,vultr支持支付宝付款,对国内用户比较友好,但是据说口碑很差,服务器IP大多被封禁,本篇只作为演示,没有引导消费的意思,博主也不经常使用vultr,如果长期使用请谨慎选择。
https://github.com/hcuk94/vyos-autobuild/releases/download/1.4.0-epa2/vyos-1.4.0-epa2-amd64.iso
二、创建实例 {#二-创建实例}
2.1、点击:Products {#2-1-点击-Products}
2.2、Deploy New Instance {#2-2-Deploy-New-Instance}
2.3、关闭备份 {#2-3-关闭备份}
2.4、取消自定义数据 {#2-4-取消自定义数据}
2.5、启动完成:Running {#2-5-启动完成-Running}
2.6、查看服务器 {#2-6-查看服务器}
2.7、配置vyos {#2-7-配置vyos}
2.8、进入vyos {#2-8-进入vyos}
2.9、安装vyos {#2-9-安装vyos}
install image
2.10、移除ISO {#2-10-移除ISO}
2.11、连接vyos {#2-11-连接vyos}
2.12、进入vyos {#2-12-进入vyos}
2.13、查看接口IP {#2-13-查看接口IP}
show int
2.14、配置接口 {#2-14-配置接口}
2.15、配置SSH登录 {#2-15-配置SSH登录}
2.16、退出系统 {#2-16-退出系统}
三、vyos-pe基础配置 {#三-vyos-pe基础配置}
3.1、登录Vyos {#3-1-登录Vyos}
3.2、修改账户密码 {#3-2-修改账户密码}
configure #进入配置模式
set system login user yydy authentication plaintext-password yydy@vyos #新建账号:yydy,密码:yydy@vyos
commit #应用配置
save #保存配置
3.3、修改hostname {#3-3-修改hostname}
set system host-name vyos-pe
commit
save
3.4、禁用默认账户vyos {#3-4-禁用默认账户vyos}
先退出vyos账户登录,然后使用刚刚创建的yydy账户登录,才能禁用默认账户。
configure
set system login user vyos disable #禁用vyos账户登录
commit
save
3.5、vyos-pe安全加固 {#3-5-vyos-pe安全加固}
这些配置是针对防火墙全局选项的设置,每个选项的作用如下:
-
set firewall global-options all-ping 'disable'
: 允许 ICMP echo-request(ping)到所有地址。 -
set firewall global-options broadcast-ping 'disable'
: 禁用 ICMP echo-request 到广播地址的回应。 -
set firewall global-options ip-src-route 'disable'
: 禁用 IP 源路由选项。 -
set firewall global-options ipv6-source-validation 'disable'
: 禁用 IPv6 源地址验证。 -
set firewall global-options ipv6-src-route 'disable'
: 禁用 IPv6 源路由选项。 -
set firewall global-options log-martians 'enable'
: 启用记录未知源 IP 或无效 TTL 的数据包。 -
set firewall global-options receive-redirects 'disable'
: 禁用接收 ICMP 重定向消息。 -
set firewall global-options send-redirects 'enable'
: 启用发送 ICMP 重定向消息。 -
set firewall global-options source-validation 'disable'
: 禁用源地址验证。 -
set firewall global-options syn-cookies 'enable'
: 启用 SYN cookies 以防止 SYN 洪泛攻击。 -
set firewall global-options twa-hazards-protection 'disable'
: 禁用 TWA(TCP Window Adjustment) 危险保护。 -
set firewall group network-group firewall-whitelist network '10.255.255.2/32'
: 创建一个网络组,允许只有10.255.255.2/32
这个 IP 地址的流量通过。 -
set firewall ipv4 input filter default-action 'accept'
: 默认情况下,允许所有 IPv4 输入流量通过。 -
set firewall ipv4 input filter rule 100 action 'accept'
: 允许特定规则的 IPv4 输入流量通过。 -
set firewall ipv4 input filter rule 100 source group network-group 'firewall-whitelist'
: 允许网络组firewall-whitelist
中定义的地址通过。 -
set firewall ipv4 input filter rule 200 action 'drop'
: 将未匹配到其他规则的 IPv4 输入流量丢弃。 -
set firewall ipv4 input filter rule 200 destination port '22,179,53'
: 针对特定端口的流量进行处理。 -
set firewall ipv4 input filter rule 200 protocol 'tcp_udp'
: 仅针对 TCP 和 UDP 流量进行处理。 -
set firewall ipv4 input filter rule 300 action 'drop''
: 将未匹配到其他规则的 IPv4 输入流量丢弃。 -
set firewall ipv4 input filter rule 300 protocol 'icmp''
: 仅针协议是 ICMP 流量进行处理。set firewall global-options all-ping 'enable' set firewall global-options broadcast-ping 'disable' set firewall global-options ip-src-route 'disable' set firewall global-options ipv6-source-validation 'disable' set firewall global-options ipv6-src-route 'disable' set firewall global-options log-martians 'enable' set firewall global-options receive-redirects 'disable' set firewall global-options send-redirects 'enable' set firewall global-options source-validation 'disable' set firewall global-options syn-cookies 'enable' set firewall global-options twa-hazards-protection 'disable' set firewall group network-group firewall-whitelist network '10.255.255.2/32' set firewall ipv4 input filter default-action 'accept' set firewall ipv4 input filter rule 100 action 'accept' set firewall ipv4 input filter rule 100 source group network-group 'firewall-whitelist' set firewall ipv4 input filter rule 200 action 'drop' set firewall ipv4 input filter rule 200 destination port '22,179,53' set firewall ipv4 input filter rule 200 protocol 'tcp_udp' set firewall ipv4 input filter rule 300 action 'drop' set firewall ipv4 input filter rule 300 protocol 'icmp' commit save
四、VMware ESXi 安装 Vyos {#四-VMware-ESXi-安装-Vyos}
4.1、安装 {#4-1-安装}
参考:【Vyos-开源篇-1】- VMware安装vyos虚拟机
4.2、配置vyos {#4-2-配置vyos}
客户端CE的其他配置请参考上面的教程,下面修改主机名方便稍后区分配置。
configure
set system host-name vyos-ce #修改主机名
commit
save
五、配置虚拟隧道WireGuard {#五-配置虚拟隧道WireGuard}
Vyos官方配置 WireGuard Site to Site VPN 直达
5.1、生成密钥对 {#5-1-生成密钥对}
generate pki wireguard key-pair
5.1.1、vyos-pe {#5-1-1-vyos-pe}
把生成的Private key和Public key复制到记事本,稍后要用。
yydy@vyos-pe:~$ generate pki wireguard key-pair
Private key: MEUnSrblAhPuXiFBe+JAtPqFQN+PU7s3mq5pYq/3dnQ=
Public key: vPVCN+MqUz5ljTYMY99NvOHQeQlYZoeAPQ9cj+taVSo=
`yydy@vyos-pe:~$
`
5.1.2、vyos-ce {#5-1-2-vyos-ce}
同理,把生成的Private key和Public key复制到记事本,稍后要用。
vyos@vyos-ce:~$ generate pki wireguard key-pair
Private key: EH37HTk2+YD1/YYvwmKhswzuZ4za2VjjM8GjhDw423Q=
Public key: 5RP73V1r+HDYorMyDnbvLXd9Uw0mIdrL2z6J53hRiAA=
`vyos@vyos-ce:~$
`
5.2、创建wg0接口 {#5-2-创建wg0接口}
5.2.1、vyos-pe {#5-2-1-vyos-pe}
配置 WireGuard VPN 接口的详细命令含义如下:
-
set interfaces wireguard wg0 address '10.255.255.1/30'
: 这条命令设置了WireGuard接口的本地IP地址和子网掩码。 -
set interfaces wireguard wg0 description 'to-vyos-ce'
: 这条命令为WireGuard接口设置了描述,用于标识接口的用途或描述信息。 -
set interfaces wireguard wg0 peer vyos-ce allowed-ips '0.0.0.0/0'
: 这条命令设置了允许流量从远程对等点进入的IP地址范围。在这种情况下,允许所有IP地址。 -
set interfaces wireguard wg0 peer vyos-ce public-key '5RP73V1r+HDYorMyDnbvLXd9Uw0mIdrL2z6J53hRiAA='
: 这条命令设置了远程对等点的公钥,用于加密通信。 -
set interfaces wireguard wg0 port '64430'
: 这条命令设置了本地WireGuard接口的端口号。 -
set interfaces wireguard wg0 private-key 'MEUnSrblAhPuXiFBe+JAtPqFQN+PU7s3mq5pYq/3dnQ='
: 这条命令设置了本地WireGuard接口的私钥,用于加密通信。set interfaces wireguard wg0 address '10.255.255.1/30' set interfaces wireguard wg0 description 'to-vyos-ce' set interfaces wireguard wg0 peer vyos-ce allowed-ips '0.0.0.0/0' set interfaces wireguard wg0 peer vyos-ce public-key '5RP73V1r+HDYorMyDnbvLXd9Uw0mIdrL2z6J53hRiAA=' set interfaces wireguard wg0 port '64430' set interfaces wireguard wg0 private-key 'MEUnSrblAhPuXiFBe+JAtPqFQN+PU7s3mq5pYq/3dnQ=' commit save
5.2.2、vyos-ce {#5-2-2-vyos-ce}
set interfaces wireguard wg0 address '10.255.255.2/30'
set interfaces wireguard wg0 description 'to-vyos-pe'
set interfaces wireguard wg0 peer vyos-pe address '45.76.198.130'
set interfaces wireguard wg0 peer vyos-pe allowed-ips '0.0.0.0/0'
set interfaces wireguard wg0 peer vyos-pe port '64430'
set interfaces wireguard wg0 peer vyos-pe public-key 'vPVCN+MqUz5ljTYMY99NvOHQeQlYZoeAPQ9cj+taVSo='
set interfaces wireguard wg0 private-key 'EH37HTk2+YD1/YYvwmKhswzuZ4za2VjjM8GjhDw423Q='
commit
save
5.3、连通信测试 {#5-3-连通信测试}
因为我们服务器端开了禁ping,所以客户端ce ping不通pe,那我们就用pe ping ce,ping 1000个包,1024个字节,1毫秒1回显,网络质量良好,平均延迟:84ms
sudo ping -i 0.01 -c 1000 -s 1024 10.255.255.2
5.4、mtu测试不分片 {#5-4-mtu测试不分片}
显示1420可以过,直接在俩端配置wg0接口mtu为1420
sudo ping -M do -s 1400 10.255.255.2
5.4.1、配置mtu {#5-4-1-配置mtu}
set interfaces wireguard wg0 mtu '1420'
commit
save
5.5、配置tcp mss {#5-5-配置tcp-mss}
在俩端同时配置下面的配置
set interfaces wireguard wg0 ip adjust-mss '1300'
commit
save
六、配置完善 {#六-配置完善}
6.1、vyos-ce {#6-1-vyos-ce}
6.1.1、全局默认路由 {#6-1-1-全局默认路由}
最终效果是要PC客户端通过vyos-pe上网,所以如果是全局模式,那么vyos-ce的默认路由需要指向vyos-pe的wg0接口ip10.255.255.1 ,并且,为了保证隧道建立正常,需要指定去pe的公网IP走本地网关,默认路由配置distance 230,为什么是230不是什么2,3,4之类的,请继续往下看。
set protocols static route 45.76.198.130/32 next-hop 10.225.97.1
set protocols static route 0.0.0.0/0 next-hop 10.255.255.1 distance '230'
commit
save
拓展完善默认路由配置缺陷,为了防止wg0隧道断线,影响用户国内上网,所以需要删除上面的默认路由,改成下面的配置方式,wg0默认路由优先级是metric 230,当vyos-ce去ping vyos-pe的wg0接口IP不通时,自动把默认路由切到本地eth0网关。
下面这些命令配置使用故障转移(failover)策略,用于在主要路由不可用时切换到备用路由,以下是每条命令的详细解释:
-
set protocols failover route 0.0.0.0/0 next-hop 10.255.255.1 check target '10.255.255.1'
:- 配置了默认路由
0.0.0.0/0
的下一跳地址为10.255.255.1
。 - 使用 ICMP 目标检查功能,以确保下一跳地址
10.255.255.1
的连通性。
- 配置了默认路由
-
set protocols failover route 0.0.0.0/0 next-hop 10.255.255.1 check timeout '5'
:- 设置 ICMP 目标检查的超时时间为 5 秒。
-
set protocols failover route 0.0.0.0/0 next-hop 10.255.255.1 check type 'icmp'
:- 指定 ICMP 类型的目标检查,用于检查下一跳地址
10.255.255.1
的连通性。
- 指定 ICMP 类型的目标检查,用于检查下一跳地址
-
set protocols failover route 0.0.0.0/0 next-hop 10.255.255.1 interface 'wg0'
:- 指定下一跳地址
10.255.255.1
的接口为wg0
,表示该路由通过接口wg0
发送。
- 指定下一跳地址
-
set protocols failover route 0.0.0.0/0 next-hop 10.255.255.1 metric '230'
:- 配置默认路由
0.0.0.0/0
到达目标的优先级(metric)为 230,优先级较低,表示备选路由。
- 配置默认路由
-
set protocols failover route 0.0.0.0/0 next-hop 10.225.97.1 check target '10.225.97.1'
:- 配置了另一条默认路由
0.0.0.0/0
的下一跳地址为10.225.97.1
。 - 使用 ICMP 目标检查功能,以确保下一跳地址
10.225.97.1
的连通性。
- 配置了另一条默认路由
-
set protocols failover route 0.0.0.0/0 next-hop 10.225.97.1 check timeout '5'
:- 设置 ICMP 目标检查的超时时间为 5 秒。
-
set protocols failover route 0.0.0.0/0 next-hop 10.225.97.1 check type 'icmp'
:- 指定 ICMP 类型的目标检查,用于检查下一跳地址
10.225.97.1
的连通性。
- 指定 ICMP 类型的目标检查,用于检查下一跳地址
-
set protocols failover route 0.0.0.0/0 next-hop 10.225.97.1 interface 'eth0'
:- 指定下一跳地址
10.225.97.1
的接口为eth0
,表示该路由通过接口eth0
发送。
- 指定下一跳地址
-
set protocols failover route 0.0.0.0/0 next-hop 10.225.97.1 metric '240'
:- 配置默认路由
0.0.0.0/0
到达目标的优先级(metric)为 240,优先级较高,表示首选路由。
- 配置默认路由
这些命令的目的是为默认路由 0.0.0.0/0
配置两个备选路由,并设置检查目标和超时时间以确保备选路由的连通性。通过配置不同的优先级(metric),可以定义主要路由和备用路由的优先级。
set protocols failover route 0.0.0.0/0 next-hop 10.255.255.1 check target '10.255.255.1'
set protocols failover route 0.0.0.0/0 next-hop 10.255.255.1 check timeout '5'
set protocols failover route 0.0.0.0/0 next-hop 10.255.255.1 check type 'icmp'
set protocols failover route 0.0.0.0/0 next-hop 10.255.255.1 interface 'wg0'
set protocols failover route 0.0.0.0/0 next-hop 10.255.255.1 metric '230'
set protocols failover route 0.0.0.0/0 next-hop 10.225.97.1 check target '10.225.97.1'
set protocols failover route 0.0.0.0/0 next-hop 10.225.97.1 check timeout '5'
set protocols failover route 0.0.0.0/0 next-hop 10.225.97.1 check type 'icmp'
set protocols failover route 0.0.0.0/0 next-hop 10.225.97.1 interface 'eth0'
set protocols failover route 0.0.0.0/0 next-hop 10.225.97.1 metric '240'
6.1.2、SNAT配置 {#6-1-2-SNAT配置}
从wg0接口出去的流量,全部nat成出接口地址,这里则是:10.255.255.2。
set nat source rule 100 outbound-interface name 'wg0'
set nat source rule 100 translation address 'masquerade'
commit
save
6.1.3、DNS配置 {#6-1-3-DNS配置}
需要vyos-ce能正常解析域名,便于后面下载smartdns程序,但是等后面下载完smartdns程序安装包之后,还需要删除dns配置,否则53端口被vyos占用,将导致smartdns启动失败。
set system name-server 223.5.5.5
set system name-server 223.6.6.6
commit
save
6.2、vyos-pe {#6-2-vyos-pe}
6.2.1、SNAT配置 {#6-2-1-SNAT配置}
需要把wg0接口进来的流量,全部nat成vyos-pe的eth0出接口地址上网。
set nat source rule 100 outbound-interface name 'eth0'
set nat source rule 100 translation address 'masquerade'
commit
save
6.2.2、DNS配置 {#6-2-2-DNS配置}
需要vyos-pe能正常解析域名,便于后面下载gobgp程序。
set system name-server 8.8.8.8
set system name-server 8.8.4.4
commit
save
七、全局模式测试 {#七-全局模式测试}
7.1、PC测试 {#7-1-PC测试}
把电脑网关改成vyos-ce的eth0口ip,dns改成8.8.8.8,因为还未配置smartdns,所以为了防止dns污染,先用谷歌dns解析域名测试。。
ip.skk.moe
www.yalala.com
whoer.net
7.2、路径和解析 {#7-2-路径和解析}
到这里如果不需要智能分流就可以结束了。
tracert -d -w 1 8.8.8.8
nslookup www.youtube.com
八、路由分流配置 {#八-路由分流配置}
gobgp具体搭建运行需要看gobgp的官方github说明,这里是用gobgp+geoip实现通过AS号归属地+区域缩写(CN,HK,US)获取动态的ip路由表。 yangpin97/BGPServer
8.1、下载GoBGP程序 {#8-1-下载GoBGP程序}
以下操作都是在Vultr云上的vyos-pe中执行。
sudo -i
mkdir bgp
cd bgp
wget https://github.com/yangpin97/BGPServer/releases/download/0.5/bgp
wget https://github.com/yangpin97/BGPServer/releases/download/0.5/ChinaBGPZip.gob
wget https://github.com/yangpin97/BGPServer/releases/download/0.5/config.ini
wget https://github.com/yangpin97/BGPServer/releases/download/0.5/map.json.gz
8.2、赋予权限 {#8-2-赋予权限}
sudo chmod +x bgp
8.3、修改config.ini {#8-3-修改config-ini}
sudo nano config.ini
[server]
RouterId = 10.255.255.1
ASN = 65000
NextHop = 10.225.97.1
UpdateSource = 10.255.255.1
`[peer]
IP = 10.255.255.2
ASN = 65000
`
-
[server]
部分说明:RouterId = 10.255.255.1
:指定本地路由器的 BGP 路由器ID。路由器ID 用于标识路由器的唯一性,是 BGP 运行所必需的。ASN = 65000
:指定本地路由器的自治系统号(ASN)。ASN 是用于识别网络中的唯一自治系统的数字标识符。NextHop = 10.225.97.1
:指定在生成更新消息时使用的下一跳地址。在 BGP 中,Next Hop 属性指定了到达目的网络的下一跳路由器的 IP 地址,因为我们下面学习的是国内BGP路由信息,所以这里写vyos-ce的eth0接口网关。UpdateSource = 10.255.255.1
:指定用于向对等方发送 BGP 更新消息的源 IP 地址。这个参数用于多点连接的情况,确保更新消息从正确的接口发送出去。
-
[peer]
部分说明:IP = 10.255.255.2
:指定对等方的 IP 地址。这个对等方是本地路由器将要建立 BGP 邻居关系的对等方。ASN = 65000
:指定对等方的自治系统号(ASN)。这个对等方的 ASN 应该与对等方配置的 ASN 相匹配,以确保 BGP 邻居关系的正确建立。
8.4、运行程序 {#8-4-运行程序}
以下命令是学习国内路由表,如果要学习非国内路由表,请修改相应配置。
sudo screen -S bgp_session -d -m ./bgp -c ./config.ini -l CN
8.5、vyos-ce配置bgp邻居 {#8-5-vyos-ce配置bgp邻居}
set protocols bgp parameters router-id 10.255.255.2
set protocols bgp neighbor 10.255.255.1 remote-as 65000
set protocols bgp neighbor 10.255.255.1 update-source 10.255.255.2
set protocols bgp neighbor 10.255.255.1 address-family ipv4-unicast soft-reconfiguration inbound
set protocols bgp system-as 65000
set protocols bgp timers holdtime '60'
set protocols bgp timers keepalive '20'
commit
save
8.6、查看邻居建立状态 {#8-6-查看邻居建立状态}
8.6.1、vyos-pe {#8-6-1-vyos-pe}
sudo screen -r
8.6..2、vyos-ce {#8-6--2-vyos-ce}
show bgp summary
8.7、路由查询 {#8-7-路由查询}
查询国内阿里云DNS 223.5.5.5,学习ebgp路由走eth0网关到国内。
这里可以看出通过ebgp学习的路由distance是200,所以上面的默认路由需要设置distance为230,根据路由匹配原则,优先匹配distance小的。
show ip route 223.5.5.5
查询国外谷歌DNS 8.8.8.8,默认路由走wg0隧道。
show ip route 8.8.8.8
8.8、路由分流测试 {#8-8-路由分流测试}
跟第七步操作步骤一样,需要修改电脑网关。
8.8.1、tracert阿里云dns {#8-8-1-tracert阿里云dns}
tracert -d -w 1 223.5.5.5
8.8.2、tracert谷歌dns {#8-8-2-tracert谷歌dns}
tracert -d -w 1 8.8.8.8
九、SmartDNS配置 {#九-SmartDNS配置}
以下配置是在vyos-ce中执行。
9.1、下载smartdns {#9-1-下载smartdns}
如果国内网络连接github下载异常,请使用博主提供的下载连接,博主提供的是当前时间2024年5月4日最新版本,如果超过这个时间很久,版本可能有所更新。
sudo -i
curl -k -O https://github.com/pymumu/smartdns/releases/download/Release45/smartdns.1.2024.02.08-0828.x86_64-debian-all.deb
curl -k -O https://alist.yydy.link:2023/d/🧩Share---共享文件/smartdns/smartdns.1.2024.02.08-0828.x86_64-debian-all.deb
9.2、安装smartdns {#9-2-安装smartdns}
dpkg -i smartdns.1.2024.02.08-0828.x86_64-debian-all.deb
9.3、删除vyos的dns {#9-3-删除vyos的dns}
9.3.1、退出root {#9-3-1-退出root}
exit
9.3.2、进入配置模式 {#9-3-2-进入配置模式}
conf
delete system name-server
commit
save
9.3.3、进入root {#9-3-3-进入root}
exit
sudo -i
9.4、修改配置文件 {#9-4-修改配置文件}
nano /etc/smartdns/smartdns.conf
# 开启ipv6-ipv4-dns服务
bind [::]:53 #默认开启
国内上游服务器(上海电信DNS)
================
server 202.96.209.133
server 202.96.209.5
server 180.168.255.118
server 116.228.111.118
国外上游服务器
=======
server 8.8.8.8
server 8.8.4.4
server 208.67.222.222
server 208.67.220.220
缓存配置
====
cache-size 32768
cache-persist yes
prefetch-domain yes
cache-file /etc/smartdns/dnscache
测速模式
====
speed-check-mode ping,tcp:80,tcp:443
其他
===
`force-qtype-SOA 65 #默认开启
log-level info #默认开启
`
9.5、启动smartdns {#9-5-启动smartdns}
sudo systemctl start smartdns
sudo systemctl enable smartdns
9.6、dns分流测试 {#9-6-dns分流测试}
跟第七步操作步骤一样,需要修改电脑网关,其次dns不能在使用8.8.8.8,要使用vyos-ce的eth0口IP地址。
十、带宽测试 {#十-带宽测试}
10.1、iperf打流 {#10-1-iperf打流}
家里带宽是100兆下行,60兆上行,基本可以跑满。
10.1.1、ce打流pe模拟上传 {#10-1-1-ce打流pe模拟上传}
10.1.2、pe打流ce模拟下载 {#10-1-2-pe打流ce模拟下载}
10.2、speedtest测速 {#10-2-speedtest测速}
其他 {#其他}
为了方便gobgp程序可以开机自启,我们可以添加为系统服务,添加为系统服务前,需要先使用:sudo screen -r
进入刚刚运行的服务,然后Ctrl+C结束会话,然后在进行下面的操作。
创建gobgp服务。
sudo nano /etc/systemd/system/bgp.service
填写下面的配置文件。
[Unit]
Description=BGP Service
After=network.target
\[Service\]
Type=simple
ExecStart=/root/bgp/bgp -c /root/bgp/config.ini -l CN
Restart=always
`[Install]
WantedBy=multi-user.target
`
重新加载 Systemd 并启用服务。
sudo systemctl daemon-reload
sudo systemctl enable bgp.service
启动服务。
sudo systemctl start bgp.service
查看服务状态。
sudo systemctl status bgp.service
停止服务。
sudo systemctl stop bgp.service
查看服务日志。
sudo journalctl -u bgp.service