AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 59419
Accepted
fnord_ix
fnord_ix
Asked: 2009-08-27 23:26:01 +0800 CST2009-08-27 23:26:01 +0800 CST 2009-08-27 23:26:01 +0800 CST

在 OpenVPN 服务器后面打开子网 LAN

  • 772

我已经在我的工作网络上设置了一个 OpenVPN 服务器,并且我可以通过 vpn 从远程机器访问该服务器。但是我不知道如何访问服务器后面的局域网。

网络布局为:

----------   -------   --------   ----------------  
|Internet|-->|Modem|-->|Switch|-->|OpenVPN Server|  
----------   -------   --------   ----------------

服务器是 ubuntu 服务器。我在服务器上启用了 IP 转发。

我们的网关/调制解调器是 Linksys WAG54G2,并与 WinXP 机器连接。

有谁知道如何打开 OpenVPN 服务器所在的子网???

linux ubuntu openvpn
  • 3 3 个回答
  • 4653 Views

3 个回答

  • Voted
  1. Best Answer
    Avery Payne
    2009-08-28T00:25:06+08:002009-08-28T00:25:06+08:00

    此设置是特定于 CentOS 的,但您的安装可能类似。该配置也适用于 2.0 版本,2.1 系列似乎使用了不同格式的配置文件。 它还假设您使用两个 linux 机器来执行此操作,而不仅仅是加入 Windows XP 端点- 因此您需要对您正在使用的 Windows XP 安装进行调整。在此示例中,地址是随机选择的,因此分配它们的方式如下:

    • 1.1.1.1 是您的工作服务器面向互联网的公共地址
    • 2.2.2.2 是您家中服务器面向互联网的公共地址
    • 192.168.1.0/24 是您工作的网络
    • 192.168.1.1 是你的机器的内部地址,它有 1.1.1.1
    • 192.168.1.254 将是具有 1.1.1.1 的机器的 VPN 端点
    • 192.168.2.0/24是你家的网络
    • 192.168.2.1 是你的机器的内部地址,它有 2.2.2.2
    • 192.168.2.254 将是具有 2.2.2.2 的机器的 VPN 端点

    和

    • 1.1.1.1 和 2.2.2.2都只接受通过您的防火墙在端口 1194 上的流量。接受来自其他任何地方的流量是没有意义的,它将减少潜在的攻击。

    秘密静态密钥

    使用静态密钥对您来说是最简单的。 在此处阅读有关如何制作的说明。 这是从 1.1.1.1 以 root 身份完成的简短版本:

    openvpn --genkey --secret > /etc/openvpn/secret.key
    chmod 600 /etc/openvpn/secret.key
    scp /etc/openvpn/static.key [email protected]:/etc/openvpn/secret.key
    ssh [email protected]
    chmod 600 /etc/openvpn/secret.key
    exit
    

    示例本地(工作 LAN)配置:

    /etc/openvpn/home-vpn假设 OpenVPN/etc/openvpn在启动时读取内容,您可以将此文本放入您的工作机器 (1.1.1.1)。

    #daemon home-vpn 
    local 1.1.1.1 
    remote 2.2.2.2 
    proto tcp-server 
    port 1194 
    dev tun0 
    ifconfig 192.168.1.254 192.168.2.254 
    route 192.168.2.0 255.255.255.0 192.168.1.254 6
    route-delay 5
    verb 3 
    nice 1
    secret /etc/openvpn/secret.key
    comp-lzo
    passtos
    

    远程(家庭 LAN)配置示例:

    /etc/openvpn/work-vpn假设 OpenVPN/etc/openvpn在启动时读取内容,您可以将此文本放在您的家用计算机 (2.2.2.2) 上。

    #daemon work-vpn 
    local 2.2.2.2 
    remote 1.1.1.1 
    proto tcp-server 
    port 1194 
    dev tun0 
    ifconfig 192.168.2.254 192.168.1.254
    route 192.168.1.0 255.255.255.0 192.168.2.254 6
    route-delay 5
    verb 3 
    nice 1
    secret /etc/openvpn/secret.key
    comp-lzo
    passtos
    

    评论

    这里的示例以 1 的优先级运行 openvpn 服务;如果您不希望这样做,请删除读取nice 1使其像任何其他程序一样运行的整行。comp-lzo两端都启用了压缩,并passtos允许 TOS 数据包位在 VPN 中保留。如果您愿意,也可以禁用这两者。有些人会注意到 6 的路由成本似乎有点高,这是真的,它可以低得多(4-5 取决于设置)但 6 为子网和额外路由提供了足够的“范围”。

    最后,当我在凌晨 1:31 发布此内容时,我确定我忘记了某些内容或标记了错误的内容,因此请随时检查设置并仔细检查它们。

    • 2
  2. samt
    2009-08-29T06:53:41+08:002009-08-29T06:53:41+08:00

    完整答案。

    • 看 Avery Payne 的详细笔记,都在那里。

    简短的回答。

    • 远程客户端需要通过 VPN 连接将流量路由到您的 LAN
    • LAN 主机需要将 VPN 专用 LAN 的流量路由到 OpenVPN 服务器

    中等答案。

    远程客户端

    当您的 OpenVPN 客户端连接到 OpenVPN 服务器时,客户端现在至少有 2 个 IP 地址。

    • “IP 地址 A”客户端用于连接到 Internet 和 OpenVPN 服务器
    • OpenVPN客户端设置的“IP地址B”

    问题是,在正常情况下,您的客户端不知道将您的局域网内 IP 范围的流量发送到哪里。客户端通常会有一个“默认网关”(即我在哪里为我不知道的目的地发送流量)转发到您的 ISP。

    这种困境的更好解决方案是让 OpenVPN 客户端在成功设置 VPN 隧道后设置路由。看看 OpenVPN 的服务器配置的推送功能。例如:

    推送“路由 LAN-IP 子网”

    (如果您的远程客户端是 Windows 机器,您可能需要在其客户端配置中添加如下内容)

    路由方法exe

    以上的组合应该可以从远程客户端通过 VPN 将流量传输到 LAN 主机,但现在您需要让 LAN 主机知道将响应发送到哪里。

    局域网主机

    如果您只是在工作之外通过 OpenVPN 服务器进行连接,那么您只需确保该 VPN 服务器是您 LAN 的默认网关。否则, ...

    • 在 LAN 主机上,通过您的 OpenVPN 服务器为“IP 地址 B”子网设置路由到网关
    • 1
  3. scyldinga
    2009-08-28T00:04:30+08:002009-08-28T00:04:30+08:00
    • 您可以桥接您的局域网和 openvpn 网络。
    • 将局域网中的机器添加到 vpn。
    • 0

相关问题

  • 更改 PHP 的默认配置设置?

  • 保护新的 Ubuntu 服务器 [关闭]

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve