如何配置OpenFortiVPN使SSH及浏览器通过VPN隧道访问公司内网资源?
如何配置OpenFortiVPN使SSH及浏览器通过VPN隧道访问公司内网资源?
看起来你已经搞定了OpenFortiVPN的基础连接,但遇到了典型的路由配置问题——系统没把访问内网资源的流量导向VPN隧道,咱们一步步来排查和解决:
第一步:检查当前路由表,确认流量走向
首先得搞清楚你的系统现在把访问work2的流量发往哪里。打开终端执行:
ip route show
或者更简洁的:
route -n
输出里找这几个关键点:
- 找到VPN连接后生成的接口(通常是
ppp0或者带fortivpn字样的接口名) - 查看有没有针对
work2所在IP/网段的路由条目,指向这个VPN接口
如果没有对应的条目,那问题就找到了——系统还是用默认的公网网卡去访问work2,自然会超时。
第二步:手动添加内网路由
假设你的VPN接口是ppp0,work2的IP是10.1.2.3(换成实际IP),执行以下命令添加路由:
sudo ip route add 10.1.2.3 dev ppp0
如果work2属于某个内网网段(比如10.1.0.0/24),就添加网段路由:
sudo ip route add 10.1.0.0/24 dev ppp0
添加完再执行ip route show确认,路由条目已经存在后,再试试SSH连接work2,应该就能通了。
第三步:配置DNS让浏览器访问内网网页
如果工作网页是内网域名(不是直接IP),还得确保系统用公司内网的DNS解析它:
- 找到OpenFortiVPN的配置文件(通常在
/etc/openfortivpn/目录下,或者~/.openfortivpn/里的自定义配置) - 在配置文件里添加一行:
dns-servers <公司内网DNS服务器IP> - 重启OpenFortiVPN服务生效:
sudo systemctl restart openfortivpn
如果只是临时测试,也可以手动修改/etc/resolv.conf,添加:
nameserver <公司DNSIP>
(注意:部分用systemd-resolved的系统,可能需要用resolvectl dns ppp0 <公司DNSIP>来设置)
第四步:验证流量是否真的走VPN
- 验证SSH流量:执行
traceroute work2,看数据包的第一跳是不是VPN接口的网关,而不是你家里的路由器 - 验证浏览器流量:用
curl -v <内网网页地址>,看输出里的连接IP是不是内网地址,以及路径是否经过VPN
另外,你提到不管VPN开没开都能ping通work1和work2,大概率是这两个服务器的IP本身是公网可访问的,但SSH端口只对内网VPN网段开放,所以必须通过VPN隧道的IP去访问才能连接成功。
如果还是有问题,可以把ip route show的完整输出贴出来,再补充下work2的IP/网段信息,这样能更精准地排查~
备注:内容来源于stack exchange,提问作者pato
相关产品推荐
相关产品推荐

