服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器
假设你有一个小的Windows域configuration如下: 域名是ad.example.com (按照这些准则 ) DC1在10.10.10.3 DC2在10.10.10.4 DC1和DC2正在运行AD集成的DNS和DHCP服务器angular色 AD DHCPconfiguration了10.10.10.50-99的地址池 AD DHCP发布的客户端租约的006 DNS Servers选项设置为DC运行AD集成DNS的地址(即10.10.10.3和10.10.10.4) AD集成的DNS服务器将google 8.8.8.8configuration为转发器 10.10.10.0/24子网通过内部地址为10.10.10.1的Cisco ASA连接到Internet ASA是10.10.10.0/24networking的网关 vpn.example.com是parsing为ASA外部IP地址的公共DNS项 远程Windows计算机使用指向vpn.example.com的Cisco IPSec VPN客户端通过ASA连接到10.10.10.0/24networking 远程Windows计算机从10.10.10.200-10.10.10.254发布IP地址 分离隧道被启用,使得只有10.10.10.0/24stream量被隧道化(该站点的最高可用上游带宽仅为2Mbps) 对于有时通过VPN连接的Windows笔记本电脑,他们的DNS应该如何configuration? 如果移动Windows笔记本电脑只接受随机的公共DNS服务器地址,则当隧道处于非活动状态时,它将向随机公用DNS服务器发送_ldap._tcp.site._sites.ad.example.com DNS查询。 这是标准的做法吗? 不知何故,这似乎是一个坏主意。 另一方面,如果Windows笔记本电脑configuration了只有内部DNS服务器10.10.10.3和10.10.10.4(如此处严格推荐 ),那么VPN客户端无法parsingvpn.example.com以build立VPN连接 – 这是一个鸡与鸡的问题。 在通过VPN连接的Windows笔记本电脑上,DNS应该有什么更奇怪的事情发生吗? VPN客户端对Windows DNS查询有多less控制? 应该启用DNS分割隧道? 启用DNS拆分隧道似乎意味着我们依靠VPN客户端拦截DNS查询,如_ldap._tcp.site._sites.ad.example.com以防止它们被发送到公共DNS服务器。 VPN客户端中的DNS拆分隧道是严格可靠的吗? 对于这一点,似乎有些应用程序可能完全忽略了VPN适配器,并尝试使用物理适配器上的公共DNS服务器来parsingWindows域地址。 这是我应该关心的吗? 另一种select – 通过隧道发送所有的DNS查findAD集成的DNS服务器 – 这似乎是一个坏主意,原因有两个:1)当用户是通道时,通道可能比公共DNS服务器高得多来自ASA的许多跳跃。 2)似乎名称将parsing为与ASA附近的服务器对应的IP地址,而不是远程计算机。 如果我正确理解这一点,那就意味着在CDN上访问媒体时遇到问题。 (编辑: 这是一个经历这个问题的人的例子。 )
我有这样的设置:使用php-fpm和http://blueimp.github.io/jQuery-File-Upload/的Nginx服务器 当我尝试上传约10MB后的文件失败。 SPDY激活时会发生这种情况。 当SPDYclosures时,上传工作正常。 有谁知道这个问题的解决方法/修复?
您能否提供一个最小化的unattend.xml文件以便在Windows 7中使用,这将在一个工作站上手动安装,更新和configuration,然后SysPrep将像这样运行: C:\Windows\System32\sysprep> sysprep /generalize /oobe /unattend:unattend.xml /shutdown 然后将C:分区克隆到多个工作站(我使用的是Linux LiveUSB的partimage )。 这个unattend.xml应该configuration一个工作站,以便在克隆之后不要求任何东西。 工作站应该只显示一个普通的login屏幕,以前configuration的帐户。 它应该创build随机的计算机名称,不要尝试joinActive Directory,因为我不习惯将密码存储在unattend.xml 。 我不想使用Windows自动安装工具包(Windows AIK)中的Windows系统映像pipe理器(Windows SIM),因为这太过于复杂了 – 对我的口味来说太复杂了。
我试图将一个ExpressionEngine网站迁移到一个新的服务器,似乎已经遇到了障碍。 对于所需的function,EE要求打开AcceptPathInfo指令,对于我来说,似乎无法让Apache协作。 服务器运行Fedora Core 18,Apache 2.4.3和PHP 5.4.11 Apache模块。 我已经尝试在我的虚拟主机configuration中设置以下内容: <VirtualHost *:80> DocumentRoot /home/mysite/public_html ServerName mysite.com <Directory /home/mysite/public_html/> AcceptPathInfo On Options Indexes FollowSymLinks MultiViews AllowOverride all Order allow,deny allow from all </Directory> </VirtualHost> 但是当我使用phpinfo()debugging时,它仍然不显示path_info,orig_path_info或orig_path_info_translated(我相信这是由于AcceptPathInfo指令被打开而产生的)。 我也尝试在我的.htaccess文件中设置指令AcceptPathInfo On,但仍然无济于事。 我一直在经历Dev和Live环境之间的设置,似乎开发服务器正在使用FastCGI运行PHP并使用cgi.fix_pathinfo。 通常情况下,我对自己的httpd.conf和php.ini做了修改,但是在这一点上,我已经远远低于兔子洞了。 我在这里错过了什么?
我刚刚安装了工头,我不知道如何去把我所有的configuration在版本控制。 我知道我可以使用Git来安装我在Puppet master上的每个模块,但是更喜欢一个更全面的解决scheme,它不仅包含模块,还包含与每个主机相关联的类以及主机上设置的任何variables。 任何build议将不胜感激与相关的工作stream程。 如果是相关的,我将GitLab设置为现场的中央Git服务器,并计划尽快安装一个CI服务器,如Jenkins。
我正在运行一个非常简短的脚本来简单地打印出所有用户和他们最后的login时间: get-aduser -filter * -property * | ft name,lastlogondate 我注意到只有less数用户拥有logindate值,而绝大多数是空白的。 这些活跃的用户每天都在login。 我的理解是lastlogondate是某种PowerShell别名,它将“lastlogontimestamp”用户属性值从一个大整数转换为可读date。 在过去,我已经成功地使用了这个查询,并且对于一些用户来说它也能正常工作。 我进入ADSIedit,发现所有用户在lastlogontimestamp中都有一个值。 尽pipe如此,如果我直接查询这个值,我仍然在PS中对于每个用户都是空白的: get-aduser -filter * -property * | ft名,lastlogontimestamp 这种行为在域中的所有3个DC上都是正确的。 我很困惑。 这是一个更大的脚本的一部分,该脚本报告并作用于未login超过X天的用户帐户,并且直到今天一直按季度正常运行。 在今天运行它,我注意到,很less有用户在报告中显示为陈旧,所以在排除故障时,我包括了最基本的查询,看看它会做什么。 在powershell中返回的空白时间戳肯定是错误的,为什么很less用户显示在我的报告陈旧(脚本不包括空白login值),但我不知道为什么PS中的值是空的,而在ADSI编辑器中的值对于特定的用户是绝对的人口稠密。 对于其他一些属性,如“logoncount”也是如此,只有那些受影响的用户(大多数)才能正常工作,而ADSI属性和PS显示的东西之间没有任何关系。 在这个例子中,所有3个DC都是2012 R2,我注意到这个行为也发生在我们拥有的一个较小的混合域(2008和2012 DC)的用户帐户上,但是却没有被注意到,因为几乎没有用户驻留在那里,所以它没有那么多焦点。 另一个重要的事情,如果我运行这个PS命令对计算机帐户Get-AD计算机而不是Get-ADuser我没有这样的问题,所有计算机正确报告lastlogondate没有空白。 在我致电微软之前有任何帮助?
我们目前遇到了很多Redis错误信息 无法连接:连接时读取错误,尝试下一台服务器 我们使用PHP Redis在FreeBSD上运行Redis,而且我们很难在Ubuntu上重现错误,所以这可能是一个暗示。 在github上这个话题有一个长期的问题 。 基本上我们通过调用phpredis中的connect(host, port, timeout)来从操作系统中获得一个套接字,但是当我们做了一个select(db_index)之后,我们会得到一个exception。 难道持续存在问题吗? 我假设连接在后台不做任何事情,并select尝试访问连接,这实际上是closures的。 我们不会遇到超时。 我们尝试调整TIME_WAIT没有成功。 关于问题可能来自哪里的任何其他想法? 跟踪这个问题的最好方法是什么? dtrace也许? 更新 我们正在研究我们的BGSAVE设置。 有趣的是,它花费了半秒多的时间来为定期将数据写入磁盘(持久化)的进程创build一个fork,并且redis在该时间段内无法响应connect()请求。
我有一个关于共享打印机的问题,以及如何最好地限制对它们的访问。 我从打印服务器(\\ server01 \ printer01)共享一台打印机,并将其locking到只能通过共享安全选项卡访问的安全组。 我也有该打印机的AD对象,它允许任何人访问该打印机。 我认为最好是通过共享来locking它,因为我不想让任何未经validation的用户打开共享。 任何想法,我怎么能做得更好,或者我怎么完全打开了我的networking? 它似乎现在工作,除了我看AD许可的时候,去“我以为我把它locking了”。
我正在设置一个辅助(DD-WRT)路由器作为OpenVPN客户端,以便所有的客户端只需连接到路由器即可获得VPN访问权限。 但似乎客户端的stream量总是通过主网关,而不是build立的VPN隧道。 build立 ISP modem+router(gateway) <–LAN cable–> DD-WRT OpenVPN client <–LAN/WIFI–> clients 这个二级DD-WRT OpenVPN客户端可以连接到远程OpenVPN服务器。 我可以通过首先telnet到DD-WRT ping主机在服务器端子网。 OpenVPN服务器也显示DD-WRT客户端连接正确。 wget -O – http://icanhazip.com返回远程服务器的公有IP。 所以隧道正常。 问题 来自连接到我的DD-WRT的客户端的stream量通过我的网关路由器,而不是通过VPN隧道tun0。 我想我需要将stream量从br0接口转发到tun0接口。 我已经尝试了下面的iptables规则,并检查IPv4转发已启用 。 cat /proc/sys/net/ipv4/ip_forward ==> 1 cat /proc/sys/net/ipv4/conf/tun0/forwarding ==> 1 cat /proc/sys/net/ipv4/conf/br0/forwarding ==> 1 # These rules are saved by pressing the 'Save firewall' button #and rebooting the DD-WRT router. […]
假设您在一个拥有众多数据中心的组织中,每个数据中心都拥有自己的运行在VMware vCenter 5.5上的私有云。 有不同操作系统的VMware模板,包括Windows,Redhat Linux等 假设有两个私有云,C1和C2。 C1一年前build成,C2最近才build成。 让我们假设它运行Windows 2012.自C1build立以来,基本模板被更新了几次。 例如,.NET框架从v4.0更新到v4.5,然后更新到v4.5.1。 C1中的虚拟机需要重build。 但是,该虚拟机中运行的软件与.NET v4.5或v4.5.1不兼容。 所以我们唯一的模板是不兼容的。 我们必须重新创build这个模板,很可能会安装一些可能导致虚拟机出现问题的操作系统补丁等。 所以看来这应该是版本模板的最佳实践。 什么是最好的方法? 这是我的尝试: 在更新模板之前创build快照。 VMware vSphere工具仍将其视为一个模板,因此,从快照“20131031 02:00”创build虚拟机需要多一点参与。 复制模板,所以现在我们有“Windows Server 2012(20131031)”,“Windows Server 2012(20130331)”和“Windows Server 2012(20140601)”。 这些工具支持这一点。 我们可能很快就会陷入混乱,人们不知道在什么模板上安装了什么。 更新模板后,将其导出。 VMware工具中只有最新的模板可用,但在出现问题时,我总能恢复旧版本的模板。 是否有更强大的版本化VMware模板的方法?