• 关于 6in4无法连接 的搜索结果

回答

我也遇到了,阿里云这个 IPv4 NAT Connection Tracking 带来的问题非常有意思。虽然我不知道真正的解决办法,但是我有一个歪招。且听我慢慢说明。 配置好 HE 隧道以后,从阿里云里面,可以向外访问任何的 IPv6 网站,其他网站所看到的本机 IP 正是你隧道的客户端地址 2001:aaa:bbb:ccc::2,一切看起来仿佛都很正常。但是,从外面另一台机器上试图 ping6 2001:aaa:bbb:ccc::2,莫名其妙的无法到达。。。此时,请你继续开着你不通的 ping6。然后你从阿里云上通过 IPv6 隧道任意发出去一个请求,请求哪里无所谓,什么协议也无所谓。你发出去请求的一瞬间,你会发现,你上面那个正在运行的 ping6 突然通了,外面其他的人也全都可以正常访问你机器了!此时,关掉所有通过隧道的 IPv6 连接,不管是向里的还是向外的。只需短短 60 秒,你就会发现外面又不能主动连接到你了。 实际上其他 NAT 用户也遇到了相同的问题(1,2,3)。不同于 PPTP 这类 VPN 协议,6in4 隧道协议是无状态的,如果没有流量从中通过的时候,不会建立和保持着一个去往 HE 服务器的 IPv4 连接,此时 NAT 无法感知到这个连接仍然存在,超时后就把这个转换条目从 NAT 表里扔掉了,当 HE 的请求主动发过来的时候就不知道该往哪转发了。 那么简单粗暴的解决方法就是,每过 50 秒往外随便扔一点东西。 比方说,你可以 nohup ping6 -i 50 ip.sb& 每 50 秒发一个 ICMP 包出去。或者你一直经由 IPv6 隧道里面开着一个 TCP 长连接也可以,TCP 协议自然会发一些 Keep alive packets 出去。RFC 5572 看起来有针对这个问题进行优化,但是 HE 可能没支持这个协议。最好的解决办法是,让阿里云在 NAT 设备上把 6in4 设为 Do Not Track。

游客st6camefjycdm 2019-12-02 02:06:53 0 浏览量 回答数 0

问题

MySQL PHP不兼容?mysql

保持可爱mmm 2020-05-18 09:52:25 3 浏览量 回答数 1

回答

楼上发的是旧版,官方已经不会继续更新了。 看新版本的吧 Linux平台用这个 https://help.aliyun.com/document_detail/oss/utilities/oss-import2/ossimport2_user_guide_for_linux.html?spm=5176.docoss/utilities/oss-import/index.6.388.ReqLFS Linux平台还有一个问题,如果短时间存在大量的链接,会导致本地无法分配接口去上传。 现象: 当前TCP/IP连接的状态和对应的个数 中TIME_WAIT个数很多: # netstat -an | awk '/^tcp/ {++s[$NF]} END {for(a in s) print a, s[a]}' 这个命令会显示出类似下面的结果: TIME_WAIT 33763 FIN_WAIT1 1 FIN_WAIT2 3 ESTABLISHED 137 LISTEN 24 3w多个TIME_WAIT,会严重的影响到后继的新连接。有必要调整下Linux的TCP/IP内核参数,让系统更快的释放 TIME_WAIT连接。 解决方案: 用vim打开配置文件: root权限打开 sudo vim /etc/sysctl.conf 加入下面的几行内容:     net.ipv4.tcp_syncookies = 1     net.ipv4.tcp_tw_reuse = 1     net.ipv4.tcp_tw_recycle = 1     net.ipv4.tcp_fin_timeout = 5 最后让其生效 sudo /sbin/sysctl -p 亲测,好用! Windows平台用这个 https://help.aliyun.com/document_detail/oss/utilities/oss-import2/ossimport2_user_guide_for_win.html?spm=5176.docoss/utilities/oss-import2/ossimport2_user_guide_for_linux.6.389.PbVHLv 另外500GB的文件不算啥,就看你带宽有多大!

wood23 2019-12-02 01:36:46 0 浏览量 回答数 0

新用户福利专场,云服务器ECS低至96.9元/年

新用户福利专场,云服务器ECS低至96.9元/年

问题

高级安全Windows防火墙概述以及最佳实践2

chenchuan 2019-12-01 21:36:14 615 浏览量 回答数 0

回答

回 楼主(qilu) 的帖子 问题:用户反馈linux下服务器站点打不开,控制台重启服务器后也无法打开。 解决:检查服务器是正常的,80端口测试是可以通的,进入后检查确认nginx进程正常,打开网站显示502 Bad Gateway错误,之后检查发现php进程丢失,找到php目录php/sbin/php-fpm start 启动php进程后网站恢复正常。 ------------------------- 问题:用户反馈debian机器无法远程,通过ECS管理链接终端进入看到如下界面 /etc/ssh/sshd_config: bad configuration option 解决:修改ssh配置文件导致,最直接有效方法是重装安装sshapt-get remove --purge openssh-serverapt-get installl  openssh-server/etc/init.d/ssh restart重装后正常远程 ------------------------- 问题:window2003服务器用户反馈可以远程,但是ip地址ping不通 ip地址ping不通只有可能是主机内部防火墙或者组策略限制。查看主机防火墙开启,但没有设置ICMP包回显。控制面板-防火墙-高级-ICMP设置。 ------------------------- 问题:用户反馈两台ECS Linux云服务器内网ip有丢包,提示ping: sendmsg: Operation not permittedping: sendmsg: Operation not permittedping: sendmsg: Operation not permitted使用同时dmesg发现很多nf_conntrack: table full, dropping packet. 解决:IP_conntrack表示连接跟踪数据库(conntrack database),代表NAT机器跟踪连接的数目,连接跟踪表能容纳多少记录是被一个变量控制的,它可由内核中的ip- sysctl函数设置,建议用户修改增大/etc/sysctl.conf中加net.ipv4.ip_conntract_max的值后解决,相关优化可以参考网上文章。 ------------------------- 问题:用户反馈修改php.ini配置文件不生效nginx+php环境下,需要重启php服务,php.Ini配置文件才会生效 ------------------------- 问题:用户使用自己的脚本安装了vpn,使用vpn账号,密码可以登陆但是无法上网。解决方法:开启linux转发功能命令:   #sed -i 's/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/' /etc/sysctl.conf#/sbin/sysctl -p ------------------------- 问题:突然发现访问网站很慢,服务器的cpu、内存和磁盘使用率都正常解决:该问题的主要解决方法参考:http://help.aliyun.com/manual?helpId=1724,但是根据该方法部分系统会报error: "net.ipv4.ip_conntrack_max" is an unknown key ,因此可尝试将方案中的语句修改成:net.ipv4.nf_conntrack_max = 1048576主要部分系统是nf_conntrack 而不是 ip_conntrack 模块。具体可以使用命令确认具体使用了什么模块:modprobe -l|grep conntrack ------------------------- 问题:用户反馈无法远程访问,无法ssh解决:1.ping云服务器ip地址可以ping通 2.使用ECS连接管理终端查看sshd服务是否正常运行,重启sshd服务提示有错误,并且在/var/empty/sshd 目录权限有错误,导致sshd服务无法正常运行 3. 使用命令chown –R root:root /var/empty/sshd 和chmod 744 /var/empty/sshd即可,测试恢复正常可以远程。 ------------------------- 问题:用户反馈客户反馈安装桌面环境失败,执行yum groupinstall "GNOME Desktop Environment"报如下错误:Warning: Group GNOME Desktop Environment does not exist. No packages in any requested group available to install or update。解决:从错误提示中可以看出,不存在GNOME Desktop Environment执行yum grouplist查询发现 GNOME Desktop Environment 已经是 Desktop整理了以下安装步骤:          1、yum groupinstall "X Window System"          2、yum groupinstall "Desktop"          3、安装VNC SERVER yum install tigervnc-server          4、修改配置文件 vi /etc/sysconfig/vncservers添加如下内容:          VNCSERVERS="1:root"             VNCSERVERARGS[1]="-geometry 1024x768"           5、给vnc加密  vncpasswd 输入两次密码           6、重新启动服务 service vpnserver restart完成以上步骤,我们就可以使用VNC客户端连接了 ------------------------- 问题:用户反馈ECS云服务器做域控制器,其他外部服务器无法加入该域中,反之可以解决:将客户ECS服务器开启RemoteRegistry服务,安装域控制器使用外部云服务器加入域中,发现能够解析成功,且能够弹出用户名密码授权界面,但是确定后报网络错误,经过多次尝试,发现最终问题在DNS上,由于ECS服务器有2块网卡公网和内网,因此安装后会有2条A记录分别指向公网和内网所以测试PING域名会解析到公网上,产生了DNS缓存因此很难看到内网地址出现,但是加入域请求时用解析到的是公网地址,验证身份时很可能请求到的就是内网地址,因此造成网络不通从而无法验证。将客户端HOSTS绑定域名到公网地址问题解决。 ------------------------- 问题:用户反馈windows server 2008无法远程,主机内部通信正常解决过程:1、  检查内部是否能够远程,发现服务器内部网络正常,远程localhost也正常2、  检查防火墙配置,发现防火墙无法打开3、  启动防火墙服务器,报错4、  检查防火墙注册表信息,发现丢失,将相同系统的注册表键值导入5、  再次启动防火墙,报错没有权限,错误代码70246、  选择注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess将其权限修改添加NT SERVICE\mpssvc并赋予完全控制权限7、启动防火墙服务,远程恢复正常 ------------------------- 问题:用户反馈微软雅黑, sans-serif]服务器网络不通,无法远程,报错情况见下图。网上搜索方法无外乎都是安装glibc.i686,原因一般是64位系统下安装了32位程序,但是没有对应的版本的glibc库导致 这种情况下下虽然service无法启动网卡,但是ifup是可以激活网卡的处理方法如下:sed -i '/exclude/ s/^/#/g' /etc/yum.conf&&ifup eth1&&yum install glibc.i686 -y#修改 /etc/yum.conf 找到包含exclude的行在行首插入#注释(我们64位镜像默认排除了*i?86的包,所以这里要修改一下)#启动eth1网卡,安装32位glibc库,执行后一般即可搞定 ------------------------- 问题:服务器上的Cisco VPN客户端拨入远端VPN服务器网络无法通信,其他外地客户端拨入远端VPN服务器均正常解决:1)查看客户VPN连接成功,但是无数据通信,PING包无法到达远端内网地址2)检查VPN客户端拨号日志,发现添加远端路由失败3)关闭服务器安全狗,重新连接VPN依旧失败。4)检查系统路由表,发现客户VPN段内网地址与VM内网地址段冲突,造成路由表添加失败;询问客户无使用我方SLB\RDS等内网产品后将内网网卡禁用,重新拨号连接,依旧发现路由表添加失败。5)手动添加路由后,VPN网络正常 ------------------------- 问题:服务器上的Cisco VPN客户端拨入远端VPN服务器网络无法通信,其他外地客户端拨入远端VPN服务器均正常解决:1)查看客户VPN连接成功,但是无数据通信,PING包无法到达远端内网地址2)检查VPN客户端拨号日志,发现添加远端路由失败 3)关闭服务器安全狗,重新连接VPN依旧失败。4)检查系统路由表,发现客户VPN段内网地址与VM内网地址段冲突,造成路由表添加失败;询问客户无使用我方SLB\RDS等内网产品后将内网网卡禁用,重新拨号连接,依旧发现路由表添加失败。5)手动添加路由后,VPN网络正常 ------------------------- 问题:使用一件安装包安装环境php报错 php virtual memory exhausted: Cannot allocate memory解决:该问题一般出现在512M内存的系统上,内存不足导致,可以让用户升级内存,升级内存后解决。 ------------------------- 问题:用户反馈Windows服务器无法远程,连接的时候提示协议错误。解决:用户反馈远程连接端口是3188,注册表中查询远程连接端口确实被改成了3188,但是在主机上远程连接也提示协议错误,使用netstat -nao 分析发现 3188对应的进程pid为4,对应经查system,找测试测试机对比,发现远程连接端口对应进程是svchost,修改注册表远程连接端口为3389后,测试恢复正常。] ------------------------- 问题:用date命令修改Linux系统的时间为什么无效解决:需要手动修改一下系统的时区才能显示正确的时间,这里以上海时区为例1. 找到相应的时区文件 /usr/share/zoneinfo/Asia/Shanghai用这个文件替换当前的文件/etc/localtime#cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime2. 修改/etc/sysconfig/clock文件,修改为: ZONE="Asia/Shanghai" UTC=true ARC=false 3. 一般只需要这两步就可以了,或者再执行下句命令校正一下时间/usr/sbin/ntpdate –u 0.asia.pool.ntp.org4. 如果没有安装ntp程序包则先执行下面这条语句yum install -y ntp* ------------------------- 问题:linux服务器x64位安装32位软件包(如libstc++.i386等)安装不上的解决方法解决方法:如果有用户反馈在linux服务器x64位安装32位软件包(如libstc++.i386等)不安装不上,可以尝试让用户在/etc/yum.conf 文件中将exclude=*.i386 kernel kernel-xen kernel-debug 注释掉,在进行安装尝试,参考http://blog.csdn.net/lixiucheng005/article/details/8787856 ------------------------- 问题:云服务器的物理机宕机怎么办?云服务器是部署在物理机上的,底层物理机性能出现异常或者其他原因都会导致物理机宕机,当检测到云服务器所在的物理机机发生故障,系统会启动保护性迁移,将您的服务器迁移到性能正常的宿主机上 ,一旦发生宕机迁移,您的服务器就会被重启,如果您希望您的服务器重启以后应用服务器自动恢复,需要您把应用程序设置成开机自动启动,如果应用服务连接的数据库,需要在程序中设置成自动重连机制。 ------------------------- 问题:Linux 服务起出现500 OOPS: vsftpd: cannot locate user specified in 'ftp_username':ftp错误? vsftp无法使用,尝试查看/etc/passwd下的目录发现用户使用的账号没有问题,但是尝试telnet 127.0.0.1 21 的时候主机报错500 OOPS: vsftpd: cannot locate user specified in 'ftp_username':ftp 处理办法在/etc/vsftpd.conf 文件内加入ftp_username=nobody 保存,该问题即可解决 ------------------------- 问题:物理机宕机迁移怎么办?云服务器是部署在物理机上的,底层物理机性能出现异常或者其他原因都会导致物理机宕机,当检测到云服务器所在的物理机机发生故障,系统会启动保护性迁移,将您的服务器迁移到性能正常的宿主机上 ,一旦发生宕机迁移,您的服务器就会被重启,如果您希望您的服务器重启以后应用服务器自动恢复,需要您把应用程序设置成开机自动启动,如果应用服务连接的数据库,需要在程序中设置成自动重连机制。 ------------------------- 问题:FTP上传经常中断怎么办?在使用FTP软件进行数据传输时有时会出现断开连接的情况,这和网络环境、硬件环境和软件环境都可能有关系。如果您在FTP管理里出现经常中断的情况,您可以将您要上传的网站程序文件压缩成一个压缩文件,使用FLASHFXP等FTP软件进行断点续传,压缩文件上传之后再在服务器中进行解压缩操作即可。(也有小概率可能受到网络原因传输过程中压缩包损坏,需要再次上传,所以巨大文件建议分割压缩) ------------------------- 问题:无法ping通服务器地址怎么办?通过站长工具—超级ping来分析一下是否是全国范围内都无法ping通云服务器。超级ping地址:http://ping.chinaz.com/如果是全国范围内都突然无法ping通云服务器地址,但是服务器是在正常运行的则可以到www.aliyun.com上提交工单;如果只是本地无法ping通云服务器则在本地使用traceroute或者tracert命令来获取本地到云服务器的路由信息再到www.aliyun.com上提交工单,寻求aliyun的技术支持

qilu 2019-12-02 03:09:51 0 浏览量 回答数 0

回答

本文总结了常见的 Linux 内核参数及相关问题。修改内核参数前,您需要: 从实际需要出发,最好有相关数据的支撑,若您的业务没有受到影响不建议调整内核参数。 了解每一个参数的具体作用,并且同类型或版本操作系统下内核参数可能有所不同。 备份 ECS 实例中的重要数据。参阅文档 创建快照。 Linux 常用内核网络参数 参数 描述 net.core.rmem_default 默认的 TCP 数据接收窗口大小(字节)。 net.core.rmem_max 最大的 TCP 数据接收窗口(字节)。 net.core.wmem_default 默认的 TCP 数据发送窗口大小(字节)。 net.core.wmem_max 最大的 TCP 数据发送窗口(字节)。 net.core.netdev_max_backlog 在每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目。 net.core.somaxconn 定义了系统中每一个端口最大的监听队列的长度,这是个全局的参数。 net.core.optmem_max 表示每个套接字所允许的最大缓冲区的大小。 net.ipv4.tcp_mem 确定 TCP 栈应该如何反映内存使用,每个值的单位都是内存页(通常是 4KB)第一个值是内存使用的下限;第二个值是内存压力模式开始对缓冲区使用应用压力的上限;第三个值是内存使用的上限。在这个层次上可以将报文丢弃,从而减少对内存的使用。对于较大的 BDP 可以增大这些值(注意:其单位是内存页而不是字节)。 net.ipv4.tcp_rmem 为自动调优定义 socket 使用的内存。第一个值是为 socket 接收缓冲区分配的最少字节数;第二个值是默认值(该值会被 rmem_default 覆盖),缓冲区在系统负载不重的情况下可以增长到这个值;第三个值是接收缓冲区空间的最大字节数(该值会被 rmem_max 覆盖)。 net.ipv4.tcp_wmem 为自动调优定义 socket 使用的内存。第一个值是为 socket 发送缓冲区分配的最少字节数;第二个值是默认值(该值会被 wmem_default 覆盖),缓冲区在系统负载不重的情况下可以增长到这个值;第三个值是发送缓冲区空间的最大字节数(该值会被 wmem_max 覆盖)。 net.ipv4.tcp_keepalive_time TCP 发送 keepalive 探测消息的间隔时间(秒),用于确认 TCP 连接是否有效。 net.ipv4.tcp_keepalive_intvl 探测消息未获得响应时,重发该消息的间隔时间(秒)。 net.ipv4.tcp_keepalive_probes 在认定 TCP 连接失效之前,最多发送多少个 keepalive 探测消息。 net.ipv4.tcp_sack 启用有选择的应答(1 表示启用),通过有选择地应答乱序接收到的报文来提高性能,让发送者只发送丢失的报文段,(对于广域网通信来说)这个选项应该启用,但是会增加对 CPU 的占用。 net.ipv4.tcp_fack 启用转发应答,可以进行有选择应答(SACK)从而减少拥塞情况的发生,这个选项也应该启用。 net.ipv4.tcp_timestamps TCP 时间戳(会在 TCP 包头增加 12 B),以一种比重发超时更精确的方法(参考 RFC 1323)来启用对 RTT 的计算,为实现更好的性能应该启用这个选项。 net.ipv4.tcp_window_scaling 启用 RFC 1323 定义的 window scaling,要支持超过 64KB 的 TCP 窗口,必须启用该值(1 表示启用),TCP 窗口最大至 1GB,TCP 连接双方都启用时才生效。 net.ipv4.tcp_syncookies 表示是否打开 TCP 同步标签(syncookie),内核必须打开了 CONFIG_SYN_COOKIES 项进行编译,同步标签可以防止一个套接字在有过多试图连接到达时引起过载。默认值 0 表示关闭。 net.ipv4.tcp_tw_reuse 表示是否允许将处于 TIME-WAIT 状态的 socket (TIME-WAIT 的端口)用于新的 TCP 连接。 net.ipv4.tcp_tw_recycle 能够更快地回收 TIME-WAIT 套接字。 net.ipv4.tcp_fin_timeout 对于本端断开的 socket 连接,TCP 保持在 FIN-WAIT-2 状态的时间(秒)。对方可能会断开连接或一直不结束连接或不可预料的进程死亡。 net.ipv4.ip_local_port_range 表示 TCP/UDP 协议允许使用的本地端口号。 net.ipv4.tcp_max_syn_backlog 对于还未获得对方确认的连接请求,可保存在队列中的最大数目。如果服务器经常出现过载,可以尝试增加这个数字。默认为 1024。 net.ipv4.tcp_low_latency 允许 TCP/IP 栈适应在高吞吐量情况下低延时的情况,这个选项应该禁用。 net.ipv4.tcp_westwood 启用发送者端的拥塞控制算法,它可以维护对吞吐量的评估,并试图对带宽的整体利用情况进行优化,对于 WAN 通信来说应该启用这个选项。 net.ipv4.tcp_bic 为快速长距离网络启用 Binary Increase Congestion,这样可以更好地利用以 GB 速度进行操作的链接,对于 WAN 通信应该启用这个选项。 net.ipv4.tcp_max_tw_buckets 该参数设置系统的 TIME_WAIT 的数量,如果超过默认值则会被立即清除。默认为 180000。 net.ipv4.tcp_synack_retries 指明了处于 SYN_RECV 状态时重传 SYN+ACK 包的次数。 net.ipv4.tcp_abort_on_overflow 设置改参数为 1 时,当系统在短时间内收到了大量的请求,而相关的应用程序未能处理时,就会发送 Reset 包直接终止这些链接。建议通过优化应用程序的效率来提高处理能力,而不是简单地 Reset。默认值: 0 net.ipv4.route.max_size 内核所允许的最大路由数目。 net.ipv4.ip_forward 接口间转发报文。 net.ipv4.ip_default_ttl 报文可以经过的最大跳数。 net.netfilter.nf_conntrack_tcp_timeout_established 让 iptables 对于已建立的连接,在设置时间内若没有活动,那么则清除掉。 net.netfilter.nf_conntrack_max 哈希表项最大值。 查看和修改 Linux 实例内核参数 方法一、通过 /proc/sys/ 目录 /proc/sys/ 目录是 Linux 内核在启动后生成的伪目录,其目录下的 net 文件夹中存放了当前系统中生效的所有内核参数、目录树结构与参数的完整名称相关,如 net.ipv4.tcp_tw_recycle,它对应的文件是 /proc/sys/net/ipv4/tcp_tw_recycle,文件的内容就是参数值。 查看内核参数:使用 cat 查看对应文件的内容,例如执行命令 cat /proc/sys/net/ipv4/tcp_tw_recycle 查看 net.ipv4.tcp_tw_recycle 的值。 修改内核参数:使用 echo 修改内核参数对应的文件,例如执行命令 echo "0" > /proc/sys/net/ipv4/tcp_tw_recycle 将 net.ipv4.tcp_tw_recycle 的值修改为 0。 注意:方法一修改的参数值仅在当次运行中生效,系统重启后会回滚历史值,一般用于临时性的验证修改的效果。若需要永久性的修改,请参阅方法二。 方法二、通过 sysctl.conf 文件 查看内核参数:执行命令 sysctl -a 查看当前系统中生效的所有参数,如下所示: net.ipv4.tcp_app_win = 31 net.ipv4.tcp_adv_win_scale = 2 net.ipv4.tcp_tw_reuse = 0 net.ipv4.tcp_frto = 2 net.ipv4.tcp_frto_response = 0 net.ipv4.tcp_low_latency = 0 net.ipv4.tcp_no_metrics_save = 0 net.ipv4.tcp_moderate_rcvbuf = 1 net.ipv4.tcp_tso_win_divisor = 3 net.ipv4.tcp_congestion_control = cubic net.ipv4.tcp_abc = 0 net.ipv4.tcp_mtu_probing = 0 net.ipv4.tcp_base_mss = 512 net.ipv4.tcp_workaround_signed_windows = 0 net.ipv4.tcp_challenge_ack_limit = 1000 net.ipv4.tcp_limit_output_bytes = 262144 net.ipv4.tcp_dma_copybreak = 4096 net.ipv4.tcp_slow_start_after_idle = 1 net.ipv4.cipso_cache_enable = 1 net.ipv4.cipso_cache_bucket_size = 10 net.ipv4.cipso_rbm_optfmt = 0 net.ipv4.cipso_rbm_strictvalid = 1 修改内核参数: 执行命令   /sbin/sysctl -w kernel.domainname="example.com"  来修改指定的参数值,如 sysctl -w net.ipv4.tcp_tw_recycle="0" 执行命令   vi /etc/sysctl.conf  修改   /etc/sysctl.conf  文件中的参数。 执行命令   /sbin/sysctl -p  使配置生效。 Linux 网络相关内核参数引发的常见问题及处理 问题现象 原因分析 解决方案 无法在本地网络环境通过 SSH 连接 ECS Linux 实例,或者访问该 Linux 实例上的 HTTP 业务出现异常。Telnet 测试会被 reset。 如果您的本地网络是 NAT 共享方式上网,该问题可能是由于本地 NAT 环境和目标 Linux 相关内核参数配置不匹配导致。尝试通过修改目标 Linux 实例内核参数来解决问题:1. 远程连接目标 Linux 实例;2. 查看当前配置: cat /proc/sys/net/ipv4/tcp_tw_recyclecat /proc/sys/net/ipv4/tcp_timestamps 查看上述两个配置的值是不是 0,如果为 1的话,NAT 环境下的请求可能会导致上述问题。 通过如下方式将上述参数值修改为 0:1. 执行命令 vi /etc/sysctl.conf。2. 添加如下内容:net.ipv4.tcp_tw_recycle=0net.ipv4.tcp_timestamps=0。3. 输入指令 # sysctl -p 使配置生效。4. 重新 SSH 登录实例或者业务访问测试。 服务端 A 与 客户端 B 建立了 TCP 连接,之后服务端 A 主动断开了连接,但是在客户端 B 上仍然看到连接是建立的。示例见图一,图二。 通常是由于修改了服务端内核参数 net.ipv4.tcp_fin_timeout 默认设置所致。 1. 执行命令 vi /etc/sysctl.conf,修改配置:net.ipv4.tcp_fin_timeout=30。2. 执行命令 # sysctl -p 使配置生效。 通过 netstat 或 ss 可以看到大量处于 TIME_WAIT 状态的连接。 通过 netstat -n | awk ‘/^tcp/ {++y[$NF]} END {for(w in y) print w, y[w]}’ 查看 TIME_WAIT 数量。 1. 执行命令 vi /etc/sysctl.conf,修改或加入以下内容: net . ipv4 . tcp_syncookies = 1 net . ipv4 . tcp_tw_reuse = 1 net . ipv4 . tcp_tw_recycle = 1 net . ipv4 . tcp_fin_timeout = 30 2. 执行命令 /sbin/sysctl -p  使配置生效。 云服务器上出现大量 CLOSE_WAIT 状态的连接数。 根据实例上的业务量来判断 CLOSE_WAIT 数量是否超出了正常的范围。TCP 连接断开时需要进行四次挥手,TCP 连接的两端都可以发起关闭连接的请求,若对端发起了关闭连接,但本地没有进行后续的关闭连接操作,那么该链接就会处于 CLOSE_WAIT 状态。虽然该链接已经处于半开状态,但是已经无法和对端通信,需要及时的释放该链接。建议从业务层面及时判断某个连接是否已经被对端关闭,即在程序逻辑中对连接及时进行关闭检查。 通过命令 netstat -an|grep CLOSE_WAIT|wc -l 查看当前实例上处于 CLOSE_WAIT 状态的连接数。Java 语言:1. 通过 read 方法来判断 I/O 。当 read 方法返回 -1 时则表示已经到达末尾。2. 通过 close 方法关闭该链接。C 语言:1. 检查 read 的返回值,若是 0 则可以关闭该连接,若小于 0 则查看一下 errno,若不是 AGAIN 则同样可以关闭连接。 ECS Linux FIN_WAIT2 状态的 TCP 链接过多。 HTTP 服务中,SERVER 由于某种原因关闭连接,如 KEEPALIVE 的超时。这样,作为主动关闭的 SERVER 一方就会进入 FIN_WAIT2 状态。但 TCP/IP 协议栈中,FIN_WAIT2 状态是没有超时的(不像 TIME_WAIT 状态),如果 Client 不关闭,FIN_WAIT_2 状态将保持到系统重启,越来越多的 FIN_WAIT_2 状态会致使内核 Crash。 1. 执行命令 vi /etc/sysctl.conf,修改或加入以下内容: net . ipv4 . tcp_syncookies = 1 net . ipv4 . tcp_fin_timeout = 30 net . ipv4 . tcp_max_syn_backlog = 8192 net . ipv4 . tcp_max_tw_buckets = 5000 2. 执行命令 # sysctl -p 使配置生效。 查询服务器 /var/log/message 日志,发现全部是类似如下 kernel: TCP: time wait bucket table overflowt 的报错信息,报错提示 TCP time wait 溢出,见图三。 TCP 连接使用很高,容易超出限制。见图四。 1. 执行命令 netstat -anp |grep tcp |wc -l统计 TCP 连接数。2. 对比 /etc/sysctl.conf 配置文件的 net.ipv4.tcp_max_tw_buckets 最大值,看是否有超出情况。3. 执行命令 vi /etc/sysctl.conf,查询 net.ipv4.tcp_max_tw_buckets 参数。如果确认连接使用很高,容易超出限制。4. 调高参数 net.ipv4.tcp_max_tw_buckets,扩大限制。5. 执行命令 # sysctl -p 使配置生效。 ECS Linux 实例出现间歇性丢包的情况,通过 tracert, mtr 等手段排查,外部网络未见异常。同时,如下图所示,在系统日志中重复出现大量kernel nf_conntrack: table full, dropping packet.错误信息。见图五。 ip_conntrack 是 Linux 系统内 NAT 的一个跟踪连接条目的模块。ip_conntrack 模块会使用一个哈希表记录 TCP 通讯协议的 established connection 记录,当哈希表满了的时候,会导致 nf_conntrack: table full, dropping packet 错误。需要通过修改内核参数来调整 ip_conntrack 限制。 Centos 5.x 系统1. 使用管理终端登录实例。2. 执行命令 # vi /etc/sysctl.conf 编辑系统内核配置。3. 修改哈希表项最大值参数:net.ipv4.netfilter.ip_conntrack_max = 655350。4. 修改超时时间参数:net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 1200,默认情况下 timeout 是5天(432000秒)。5. 执行命令 # sysctl -p 使配置生效。Centos 6.x 及以上系统:1. 使用管理终端登录实例。2. 执行命令 # vi /etc/sysctl.conf 编辑系统内核配置。3. 修改哈希表项最大值参数:net.netfilter.nf_conntrack_max = 655350。4. 修改超时时间参数:net.netfilter.nf_conntrack_tcp_timeout_established = 1200,默认情况下 timeout 是5天(432000秒)。5. 执行命令 # sysctl -p 使配置生效。 客户端做了 NAT 后无法访问 ECS、RDS,包括通过 SNAT VPC 访问外网的 ECS 。无法访问连接其他 ECS 或 RDS 等云产品,抓包检测发现远端对客户端发送的 SYN 包没有响应。 若远端服务器同时开启 net.ipv4.tcp_tw_recycle 和 net.ipv4.tcp_timestamps,即参数取值为 1 时,服务器会检查每一个报文的时间戳(Timestamp),若 Timestamp 不是递增的关系,则不做处理。做了 NAT 后,服务器看到来自不同的客户端的 IP 相似,但 NAT 前每一台客户端的时间可能会有偏差,在服务器上就会看到 Timestamp 不是递增的情况。 - 远端服务器为 ECS:修改参数 net.ipv4.tcp_tw_recycle 为 0。- 远端服务器为 RDS 等 PaaS 服务:RDS 无法直接修改内核参数,需要在客户端上修改参数 net.ipv4.tcp_tw_recycle 和 net.ipv4.tcp_timestamps 为 0。 参考链接 Linux man-pages kernel/git/torvalds/linux.git_proc kernel/git/torvalds/linux.git_proc_net_tcp kernel/git/torvalds/linux.git_ip-sysctl kernel/git/torvalds/linux.git_netfilter-sysctl kernel/git/torvalds/linux.git_nf_conntrack-sysctl 图一: 客户端 B TCP 连接 图二: 客户端 A TCP 连接 图三: 报错提示 TCP time wait 溢出 图四: 查询 net.ipv4.tcp_max_tw_buckets 参数 图五: ECS Linux 实例间歇性丢包

KB小秘书 2019-12-02 02:05:57 0 浏览量 回答数 0

问题

云服务器ECS

黄一刀 2020-04-04 04:10:42 723 浏览量 回答数 2

回答

问题描述 使用SSH登录Linux实例时,提示如下错误信息,导致无法正常连接Linux实例。 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that the RSA host key has just been changed. The fingerprint for the RSA key sent by the remote host is ae:6e:68:4c:97:a6:91:81:11:38:8d:64:ff:92:13:50. Please contact your system administrator. Add correct host key in /root/.ssh/known_hosts to get rid of this message. Offending key in /root/.ssh/known_hosts:70 RSA host key for x.x.x.x has changed and you have requested strict checking. Host key verification failed. 若客户端为Windows环境,以常见的SSH客户端为例,连接时提示如下错误。 X.X.X.X (端口:XX)的主机密钥与本地主机密钥数据库中保存的不一致。主机密钥已更改或有人试图监听此连接。若无法确定,建议取消此连接。 问题原因 Linux实例进行过重装系统,账户信息变更等使其SSH公钥变更,造成客户端保存的公钥指纹与服务器端不一致,导致SSH认证失败拒绝登录。 解决方案 阿里云提醒您: 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。 本文相关Linux配置及说明已在CentOS 6.5 64 位操作系统中进行过测试。其它操作系统版本配置可能有所差异,具体情况请参阅相应操作系统官方文档。 客户端为Windows环境 如果客户端是Windows环境,而且使用SSH客户端Putty连接Windows实例,您可以参考以下步骤进行操作。 启动Putty。 在登录页面,单击 Delete,删除登录会话。 Image2.png 重新使用用户名及密码登录实例,确认保存新的公钥指纹后,即可成功登录。 注:您也可以在弹出相关告警信息时,单击 接收并保存,让程序自动更新密钥指纹信息,即可成功登录实例。 客户端为Linux环境 如果客户端是Linux环境,您可以参考以下步骤进行操作。 执行如下命令,进入对应账号的known_hosts文件。 vi ~/.ssh/known_hosts 按 i 键进入编辑模式。 删除Linux实例IP对应的条目,如下图所示。 TB1yJ8YJVXXXXXqXFXXXXXXXXXX.png 输入:wq保存并退出。 重新连接Linux实例,确认保存新的公钥指纹后,即可成功登录。 更多信息 由于公钥一般较长,采用RSA算法时长达1024位,为了简便起见,通过对其MD5计算,生成一个128位的字符串用于信息对比,称为公钥指纹。 相关文档 若还有问题没解决,请参考如下文档,做进一步的排查分析。 云服务器 ECS Linux SSH 无法登录问题排查指引 适用于 云服务器 ECS 如果您的问题仍未解决,您可以在阿里云社区免费咨询,或提交工单联系阿里云技术支持。

1934890530796658 2020-03-25 23:07:37 0 浏览量 回答数 0

问题

PCI远程扫描漏洞补丁如何解决

1298117508539047 2019-12-01 18:51:40 2296 浏览量 回答数 0

问题

Apache Flink:Python流API中的Kafka连接器,“无法加载用户类”

flink小助手 2019-12-01 19:23:57 2796 浏览量 回答数 3

问题

【精品锦集】MySQL热门回答02

问问小秘 2019-12-01 19:52:33 135 浏览量 回答数 1

问题

greenplum 初始化时报unknown host mdw?报错

爱吃鱼的程序员 2020-06-08 20:14:14 0 浏览量 回答数 1

回答

Nginx是一个轻量级的,高性能的Web服务器以及反向代理和邮箱 (IMAP/POP3)代理服务器。它运行在UNIX,GNU /linux,BSD 各种版本,Mac OS X,Solaris和Windows。根据调查统计,6%的网站使用Nginx Web服务器。Nginx是少数能处理C10K问题的服务器之一。跟传统的服务器不同,Nginx不依赖线程来处理请求。相反,它使用了更多的可扩展的事 件驱动(异步)架构。Nginx为一些高流量的网站提供动力,比如WordPress,人人网,腾讯,网易等。这篇文章主要是介绍如何提高运行在 Linux或UNIX系统的Nginx Web服务器的安全性。 默认配置文件和Nginx端口 /usr/local/nginx/conf/ – Nginx配置文件目录,/usr/local/nginx/conf/nginx.conf是主配置文件 /usr/local/nginx/html/ – 默认网站文件位置 /usr/local/nginx/logs/ – 默认日志文件位置 Nginx HTTP默认端口 : TCP 80 Nginx HTTPS默认端口: TCP 443 你可以使用以下命令来测试Nginx配置文件准确性。 /usr/local/nginx/sbin/nginx -t 将会输出: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok configuration file /usr/local/nginx/conf/nginx.conf test is successful 执行以下命令来重新加载配置文件。 /usr/local/nginx/sbin/nginx -s reload 执行以下命令来停止服务器。 /usr/local/nginx/sbin/nginx -s stop 一、配置SELinux 注意:对于云服务器 ECS,参阅 ECS 使用须知 ,基于兼容性、稳定性考虑,请勿开启 SELinux。 安全增强型 Linux(SELinux)是一个Linux内核的功能,它提供支持访问控制的安全政策保护机制。它可以防御大部分攻击。下面我们来看如何启动基于centos/RHEL系统的SELinux。 安装SELinux rpm -qa | grep selinux libselinux-1.23.10-2 selinux-policy-targeted-1.23.16-6 如果没有返回任何结果,代表没有安装 SELinux,如果返回了类似上面的结果,则说明系统安装了 SELinux。 布什值锁定 运行命令getsebool -a来锁定系统。 getsebool -a | less getsebool -a | grep off getsebool -a | grep o 二、通过分区挂载允许最少特权 服务器上的网页/html/php文件单独分区。例如,新建一个分区/dev/sda5(第一逻辑分区),并且挂载在/nginx。确保 /nginx是以noexec, nodev and nosetuid的权限挂载。以下是我的/etc/fstab的挂载/nginx的信息: LABEL=/nginx /nginx ext3 defaults,nosuid,noexec,nodev 1 2 注意:你需要使用fdisk和mkfs.ext3命令创建一个新分区。 三、配置/etc/sysctl.conf强化Linux安全 你可以通过编辑/etc/sysctl.conf来控制和配置Linux内核、网络设置。 Avoid a smurf attack net.ipv4.icmp_echo_ignore_broadcasts = 1 Turn on protection for bad icmp error messages net.ipv4.icmp_ignore_bogus_error_responses = 1 Turn on syncookies for SYN flood attack protection net.ipv4.tcp_syncookies = 1 Turn on and log spoofed, source routed, and redirect packets net.ipv4.conf.all.log_martians = 1 net.ipv4.conf.default.log_martians = 1 No source routed packets here net.ipv4.conf.all.accept_source_route = 0 net.ipv4.conf.default.accept_source_route = 0 Turn on reverse path filtering net.ipv4.conf.all.rp_filter = 1 net.ipv4.conf.default.rp_filter = 1 Make sure no one can alter the routing tables net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.default.accept_redirects = 0 net.ipv4.conf.all.secure_redirects = 0 net.ipv4.conf.default.secure_redirects = 0 Don’t act as a router net.ipv4.ip_forward = 0 net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.default.send_redirects = 0 Turn on execshild kernel.exec-shield = 1 kernel.randomize_va_space = 1 Tuen IPv6 net.ipv6.conf.default.router_solicitations = 0 net.ipv6.conf.default.accept_ra_rtr_pref = 0 net.ipv6.conf.default.accept_ra_pinfo = 0 net.ipv6.conf.default.accept_ra_defrtr = 0 net.ipv6.conf.default.autoconf = 0 net.ipv6.conf.default.dad_transmits = 0 net.ipv6.conf.default.max_addresses = 1 Optimization for port usefor LBs Increase system file descriptor limit fs.file-max = 65535 Allow for more PIDs (to reduce rollover problems); may break some programs 32768 kernel.pid_max = 65536 Increase system IP port limits net.ipv4.ip_local_port_range = 2000 65000 Increase TCP max buffer size setable using setsockopt() net.ipv4.tcp_rmem = 4096 87380 8388608 net.ipv4.tcp_wmem = 4096 87380 8388608 Increase Linux auto tuning TCP buffer limits min, default, and max number of bytes to use set max to at least 4MB, or higher if you use very high BDP paths Tcp Windows etc net.core.rmem_max = 8388608 net.core.wmem_max = 8388608 net.core.netdev_max_backlog = 5000 net.ipv4.tcp_window_scaling = 1 四、删除所有不需要的Nginx模块 你需要直接通过编译Nginx源代码使模块数量最少化。通过限制只允许web服务器访问模块把风险降到最低。你可以只配置安装nginx你所需要的模块。例如,禁用SSL和autoindex模块你可以执行以下命令: ./configure –without-http_autoindex_module –without-http_ssi_module make make install 通过以下命令来查看当编译nginx服务器时哪个模块能开户或关闭: ./configure –help | less 禁用你用不到的nginx模块。 (可选项)更改nginx版本名称。 编辑文件/http/ngx_http_header_filter_module.c: vi +48 src/http/ngx_http_header_filter_module.c 找到行: static char ngx_http_server_string[] = “Server: nginx” CRLF; static char ngx_http_server_full_string[] = “Server: ” NGINX_VER CRLF; 按照以下行修改: static char ngx_http_server_string[] = “Server: Ninja Web Server” CRLF; static char ngx_http_server_full_string[] = “Server: Ninja Web Server” CRLF; 保存并关闭文件。现在你可以编辑服务器了。增加以下代码到nginx.conf文件来关闭nginx版本号的显示。 server_tokens off 五、使用mod_security(只适合后端Apache服务器) mod_security为Apache提供一个应用程序级的防火墙。为后端Apache Web服务器安装mod_security,这会阻止很多注入式攻击。 六、安装SELinux策略以强化Nginx Web服务器 默认的SELinux不会保护Nginx Web服务器,但是你可以安装和编译保护软件。 1、安装编译SELinux所需环境支持 yum -y install selinux-policy-targeted selinux-policy-devel 2、下载SELinux策略以强化Nginx Web服务器。 cd /opt wget ‘http://downloads.sourceforge.net/project/selinuxnginx/se-ngix_1_0_10.tar.gz?use_mirror=nchc’ 3、解压文件 tar -zxvf se-ngix_1_0_10.tar.gz 4、编译文件 cd se-ngix_1_0_10/nginx make 将会输出如下: Compiling targeted nginx module /usr/bin/checkmodule: loading policy configuration from tmp/nginx.tmp /usr/bin/checkmodule: policy configuration loaded /usr/bin/checkmodule: writing binary representation (version 6) to tmp/nginx.mod Creating targeted nginx.pp policy package rm tmp/nginx.mod.fc tmp/nginx.mod 5、安装生成的nginx.pp SELinux模块: /usr/sbin/semodule -i nginx.pp 七、基于Iptables防火墙的限制 下面的防火墙脚本阻止任何除了允许: 来自HTTP(TCP端口80)的请求 来自ICMP ping的请求 ntp(端口123)的请求输出 smtp(TCP端口25)的请求输出 #!/bin/bash IPT=”/sbin/iptables” IPS Get server public ip SERVER_IP=$(ifconfig eth0 | grep ‘inet addr:’ | awk -F’inet addr:’ ‘{ print $2}’ | awk ‘{ print $1}’) LB1_IP=”204.54.1.1″ LB2_IP=”204.54.1.2″ Do some smart logic so that we can use damm script on LB2 too OTHER_LB=”" SERVER_IP=”" [[ "$SERVER_IP" == "$LB1_IP" ]] && OTHER_LB=”$LB2_IP” || OTHER_LB=”$LB1_IP” [[ "$OTHER_LB" == "$LB2_IP" ]] && OPP_LB=”$LB1_IP” || OPP_LB=”$LB2_IP” IPs PUB_SSH_ONLY=”122.xx.yy.zz/29″ FILES BLOCKED_IP_TDB=/root/.fw/blocked.ip.txt SPOOFIP=”127.0.0.0/8 192.168.0.0/16 172.16.0.0/12 10.0.0.0/8 169.254.0.0/16 0.0.0.0/8 240.0.0.0/4 255.255.255.255/32 168.254.0.0/16 224.0.0.0/4 240.0.0.0/5 248.0.0.0/5 192.0.2.0/24″ BADIPS=$( [[ -f ${BLOCKED_IP_TDB} ]] && egrep -v “^#|^$” ${BLOCKED_IP_TDB}) Interfaces PUB_IF=”eth0″ # public interface LO_IF=”lo” # loopback VPN_IF=”eth1″ # vpn / private net start firewall echo “Setting LB1 $(hostname) Firewall…” DROP and close everything $IPT -P INPUT DROP $IPT -P OUTPUT DROP $IPT -P FORWARD DROP Unlimited lo access $IPT -A INPUT -i ${LO_IF} -j ACCEPT $IPT -A OUTPUT -o ${LO_IF} -j ACCEPT Unlimited vpn / pnet access $IPT -A INPUT -i ${VPN_IF} -j ACCEPT $IPT -A OUTPUT -o ${VPN_IF} -j ACCEPT Drop sync $IPT -A INPUT -i ${PUB_IF} -p tcp ! –syn -m state –state NEW -j DROP Drop Fragments $IPT -A INPUT -i ${PUB_IF} -f -j DROP $IPT -A INPUT -i ${PUB_IF} -p tcp –tcp-flags ALL FIN,URG,PSH -j DROP $IPT -A INPUT -i ${PUB_IF} -p tcp –tcp-flags ALL ALL -j DROP Drop NULL packets $IPT -A INPUT -i ${PUB_IF} -p tcp –tcp-flags ALL NONE -m limit –limit 5/m –limit-burst 7 -j LOG –log-prefix ” NULL Packets “ $IPT -A INPUT -i ${PUB_IF} -p tcp –tcp-flags ALL NONE -j DROP $IPT -A INPUT -i ${PUB_IF} -p tcp –tcp-flags SYN,RST SYN,RST -j DROP Drop XMAS $IPT -A INPUT -i ${PUB_IF} -p tcp –tcp-flags SYN,FIN SYN,FIN -m limit –limit 5/m –limit-burst 7 -j LOG –log-prefix ” XMAS Packets “ $IPT -A INPUT -i ${PUB_IF} -p tcp –tcp-flags SYN,FIN SYN,FIN -j DROP Drop FIN packet scans $IPT -A INPUT -i ${PUB_IF} -p tcp –tcp-flags FIN,ACK FIN -m limit –limit 5/m –limit-burst 7 -j LOG –log-prefix ” Fin Packets Scan “ $IPT -A INPUT -i ${PUB_IF} -p tcp –tcp-flags FIN,ACK FIN -j DROP $IPT -A INPUT -i ${PUB_IF} -p tcp –tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP Log and get rid of broadcast / multicast and invalid $IPT -A INPUT -i ${PUB_IF} -m pkttype –pkt-type broadcast -j LOG –log-prefix ” Broadcast “ $IPT -A INPUT -i ${PUB_IF} -m pkttype –pkt-type broadcast -j DROP $IPT -A INPUT -i ${PUB_IF} -m pkttype –pkt-type multicast -j LOG –log-prefix ” Multicast “ $IPT -A INPUT -i ${PUB_IF} -m pkttype –pkt-type multicast -j DROP $IPT -A INPUT -i ${PUB_IF} -m state –state INVALID -j LOG –log-prefix ” Invalid “ $IPT -A INPUT -i ${PUB_IF} -m state –state INVALID -j DROP Log and block spoofed ips $IPT -N spooflist for ipblock in $SPOOFIP do $IPT -A spooflist -i ${PUB_IF} -s $ipblock -j LOG –log-prefix ” SPOOF List Block “ $IPT -A spooflist -i ${PUB_IF} -s $ipblock -j DROP done $IPT -I INPUT -j spooflist $IPT -I OUTPUT -j spooflist $IPT -I FORWARD -j spooflist Allow ssh only from selected public ips for ip in ${PUB_SSH_ONLY} do $IPT -A INPUT -i ${PUB_IF} -s ${ip} -p tcp -d ${SERVER_IP} –destination-port 22 -j ACCEPT $IPT -A OUTPUT -o ${PUB_IF} -d ${ip} -p tcp -s ${SERVER_IP} –sport 22 -j ACCEPT done allow incoming ICMP ping pong stuff $IPT -A INPUT -i ${PUB_IF} -p icmp –icmp-type 8 -s 0/0 -m state –state NEW,ESTABLISHED,RELATED -m limit –limit 30/sec -j ACCEPT $IPT -A OUTPUT -o ${PUB_IF} -p icmp –icmp-type 0 -d 0/0 -m state –state ESTABLISHED,RELATED -j ACCEPT allow incoming HTTP port 80 $IPT -A INPUT -i ${PUB_IF} -p tcp -s 0/0 –sport 1024:65535 –dport 80 -m state –state NEW,ESTABLISHED -j ACCEPT $IPT -A OUTPUT -o ${PUB_IF} -p tcp –sport 80 -d 0/0 –dport 1024:65535 -m state –state ESTABLISHED -j ACCEPT allow outgoing ntp $IPT -A OUTPUT -o ${PUB_IF} -p udp –dport 123 -m state –state NEW,ESTABLISHED -j ACCEPT $IPT -A INPUT -i ${PUB_IF} -p udp –sport 123 -m state –state ESTABLISHED -j ACCEPT allow outgoing smtp $IPT -A OUTPUT -o ${PUB_IF} -p tcp –dport 25 -m state –state NEW,ESTABLISHED -j ACCEPT $IPT -A INPUT -i ${PUB_IF} -p tcp –sport 25 -m state –state ESTABLISHED -j ACCEPT add your other rules here ####################### drop and log everything else $IPT -A INPUT -m limit –limit 5/m –limit-burst 7 -j LOG –log-prefix ” DEFAULT DROP “ $IPT -A INPUT -j DROP exit 0 八、控制缓冲区溢出攻击 编辑nginx.conf,为所有客户端设置缓冲区的大小限制。 vi /usr/local/nginx/conf/nginx.conf 编辑和设置所有客户端缓冲区的大小限制如下: Start: Size Limits & Buffer Overflows client_body_buffer_size 1K; client_header_buffer_size 1k; client_max_body_size 1k; large_client_header_buffers 2 1k; END: Size Limits & Buffer Overflows 解释: 1、client_body_buffer_size 1k-(默认8k或16k)这个指令可以指定连接请求实体的缓冲区大小。如果连接请求超过缓存区指定的值,那么这些请求实体的整体或部分将尝试写入一个临时文件。 2、client_header_buffer_size 1k-指令指定客户端请求头部的缓冲区大小。绝大多数情况下一个请求头不会大于1k,不过如果有来自于wap客户端的较大的cookie它可能会大于 1k,Nginx将分配给它一个更大的缓冲区,这个值可以在large_client_header_buffers里面设置。 3、client_max_body_size 1k-指令指定允许客户端连接的最大请求实体大小,它出现在请求头部的Content-Length字段。 如果请求大于指定的值,客户端将收到一个”Request Entity Too Large” (413)错误。记住,浏览器并不知道怎样显示这个错误。 4、large_client_header_buffers-指定客户端一些比较大的请求头使用的缓冲区数量和大小。请求字段不能大于一个缓冲区大小,如果客户端发送一个比较大的头,nginx将返回”Request URI too large” (414) 同样,请求的头部最长字段不能大于一个缓冲区,否则服务器将返回”Bad request” (400)。缓冲区只在需求时分开。默认一个缓冲区大小为操作系统中分页文件大小,通常是4k或8k,如果一个连接请求最终将状态转换为keep- alive,它所占用的缓冲区将被释放。 你还需要控制超时来提高服务器性能并与客户端断开连接。按照如下编辑: Start: Timeouts client_body_timeout 10; client_header_timeout 10; keepalive_timeout 5 5; send_timeout 10; End: Timeouts 1、client_body_timeout 10;-指令指定读取请求实体的超时时间。这里的超时是指一个请求实体没有进入读取步骤,如果连接超过这个时间而客户端没有任何响应,Nginx将返回一个”Request time out” (408)错误。 2、client_header_timeout 10;-指令指定读取客户端请求头标题的超时时间。这里的超时是指一个请求头没有进入读取步骤,如果连接超过这个时间而客户端没有任何响应,Nginx将返回一个”Request time out” (408)错误。 3、keepalive_timeout 5 5; – 参数的第一个值指定了客户端与服务器长连接的超时时间,超过这个时间,服务器将关闭连接。参数的第二个值(可选)指定了应答头中Keep-Alive: timeout=time的time值,这个值可以使一些浏览器知道什么时候关闭连接,以便服务器不用重复关闭,如果不指定这个参数,nginx不会在应 答头中发送Keep-Alive信息。(但这并不是指怎样将一个连接“Keep-Alive”)参数的这两个值可以不相同。 4、send_timeout 10; 指令指定了发送给客户端应答后的超时时间,Timeout是指没有进入完整established状态,只完成了两次握手,如果超过这个时间客户端没有任何响应,nginx将关闭连接。 九、控制并发连接 你可以使用NginxHttpLimitZone模块来限制指定的会话或者一个IP地址的特殊情况下的并发连接。编辑nginx.conf: Directive describes the zone, in which the session states are stored i.e. store in slimits. 1m can handle 32000 sessions with 32 bytes/session, set to 5m x 32000 session limit_zone slimits $binary_remote_addr 5m; Control maximum number of simultaneous connections for one session i.e. restricts the amount of connections from a single ip address limit_conn slimits 5; 上面表示限制每个远程IP地址的客户端同时打开连接不能超过5个。 十、只允许我们的域名的访问 如果机器人只是随机扫描服务器的所有域名,那拒绝这个请求。你必须允许配置的虚拟域或反向代理请求。你不必使用IP地址来拒绝。 Only requests to our Host are allowed i.e. nixcraft.in, images.nixcraft.in and www.nixcraft.in if ($host !~ ^(nixcraft.in|www.nixcraft.in|images.nixcraft.in)$ ) { return 444; } 十一、限制可用的请求方法 GET和POST是互联网上最常用的方法。 Web服务器的方法被定义在RFC 2616。如果Web服务器不要求启用所有可用的方法,它们应该被禁用。下面的指令将过滤只允许GET,HEAD和POST方法: Only allow these request methods if ($request_method !~ ^(GET|HEAD|POST)$ ) { return 444; } Do not accept DELETE, SEARCH and other methods 更多关于HTTP方法的介绍 GET方法是用来请求,如文件http://www.moqifei.com/index.php。 HEAD方法是一样的,除非该服务器的GET请求无法返回消息体。 POST方法可能涉及到很多东西,如储存或更新数据,或订购产品,或通过提交表单发送电子邮件。这通常是使用服务器端处理,如PHP,Perl和Python等脚本。如果你要上传的文件和在服务器处理数据,你必须使用这个方法。 十二、如何拒绝一些User-Agents? 你可以很容易地阻止User-Agents,如扫描器,机器人以及滥用你服务器的垃圾邮件发送者。 Block download agents if ($http_user_agent ~* LWP::Simple|BBBike|wget) { return 403; } 阻止Soso和有道的机器人: Block some robots if ($http_user_agent ~* Sosospider|YodaoBot) { return 403; } 十三、如何防止图片盗链 图片或HTML盗链的意思是有人直接用你网站的图片地址来显示在他的网站上。最终的结果,你需要支付额外的宽带费用。这通常是在论坛和博客。我强烈建议您封锁,并阻止盗链行为。 Stop deep linking or hot linking location /images/ { valid_referers none blocked www.example.com example.com; if ($invalid_referer) { return 403; } } 例如:重定向并显示指定图片 valid_referers blocked www.example.com example.com; if ($invalid_referer) { rewrite ^/images/uploads.*.(gif|jpg|jpeg|png)$ http://www.examples.com/banned.jpg last } 十四、目录限制 你可以对指定的目录设置访问权限。所有的网站目录应该一一的配置,只允许必须的目录访问权限。 通过IP地址限制访问 你可以通过IP地址来限制访问目录/admin/: location /docs/ { block one workstation deny 192.168.1.1; allow anyone in 192.168.1.0/24 allow 192.168.1.0/24; drop rest of the world deny all; } 通过密码保护目录 首先创建密码文件并增加“user”用户: mkdir /usr/local/nginx/conf/.htpasswd/ htpasswd -c /usr/local/nginx/conf/.htpasswd/passwd user 编辑nginx.conf,加入需要保护的目录: Password Protect /personal-images/ and /delta/ directories location ~ /(personal-images/.|delta/.) { auth_basic “Restricted”; auth_basic_user_file /usr/local/nginx/conf/.htpasswd/passwd; } 一旦密码文件已经生成,你也可以用以下的命令来增加允许访问的用户: htpasswd -s /usr/local/nginx/conf/.htpasswd/passwd userName 十五、Nginx SSL配置 HTTP是一个纯文本协议,它是开放的被动监测。你应该使用SSL来加密你的用户内容。 创建SSL证书 执行以下命令: cd /usr/local/nginx/conf openssl genrsa -des3 -out server.key 1024 openssl req -new -key server.key -out server.csr cp server.key server.key.org openssl rsa -in server.key.org -out server.key openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt 编辑nginx.conf并按如下来更新: server { server_name example.com; listen 443; ssl on; ssl_certificate /usr/local/nginx/conf/server.crt; ssl_certificate_key /usr/local/nginx/conf/server.key; access_log /usr/local/nginx/logs/ssl.access.log; error_log /usr/local/nginx/logs/ssl.error.log; } 重启nginx: /usr/local/nginx/sbin/nginx -s reload 十六、Nginx与PHP安全建议 PHP是流行的服务器端脚本语言之一。如下编辑/etc/php.ini文件: Disallow dangerous functions disable_functions = phpinfo, system, mail, exec Try to limit resources Maximum execution time of each script, in seconds max_execution_time = 30 Maximum amount of time each script may spend parsing request data max_input_time = 60 Maximum amount of memory a script may consume (8MB) memory_limit = 8M Maximum size of POST data that PHP will accept. post_max_size = 8M Whether to allow HTTP file uploads. file_uploads = Off Maximum allowed size for uploaded files. upload_max_filesize = 2M Do not expose PHP error messages to external users display_errors = Off Turn on safe mode safe_mode = On Only allow access to executables in isolated directory safe_mode_exec_dir = php-required-executables-path Limit external access to PHP environment safemode_allowed_env_vars = PHP Restrict PHP information leakage expose_php = Off Log all errors log_errors = On Do not register globals for input data register_globals = Off Minimize allowable PHP post size post_max_size = 1K Ensure PHP redirects appropriately cgi.force_redirect = 0 Disallow uploading unless necessary file_uploads = Off Enable SQL safe mode sql.safe_mode = On Avoid Opening remote files allow_url_fopen = Off 十七、如果可能让Nginx运行在一个chroot监狱 把nginx放在一个chroot监狱以减小潜在的非法进入其它目录。你可以使用传统的与nginx一起安装的chroot。如果可能,那使用FreeBSD jails,Xen,OpenVZ虚拟化的容器概念。 十八、在防火墙级限制每个IP的连接数 网络服务器必须监视连接和每秒连接限制。PF和Iptales都能够在进入你的nginx服务器之前阻止最终用户的访问。 Linux Iptables:限制每次Nginx连接数 下面的例子会阻止来自一个IP的60秒钟内超过15个连接端口80的连接数。 /sbin/iptables -A INPUT -p tcp –dport 80 -i eth0 -m state –state NEW -m recent –set /sbin/iptables -A INPUT -p tcp –dport 80 -i eth0 -m state –state NEW -m recent –update –seconds 60 –hitcount 15 -j DROP service iptables save 请根据你的具体情况来设置限制的连接数。 十九:配置操作系统保护Web服务器 像以上介绍的启动SELinux.正确设置/nginx文档根目录的权限。Nginx以用户nginx运行。但是根目录(/nginx或者/usr /local/nginx/html)不应该设置属于用户nginx或对用户nginx可写。找出错误权限的文件可以使用如下命令: find /nginx -user nginx find /usr/local/nginx/html -user nginx 确保你更所有权为root或其它用户,一个典型的权限设置 /usr/local/nginx/html/ ls -l /usr/local/nginx/html/ 示例输出: -rw-r–r– 1 root root 925 Jan 3 00:50 error4xx.html -rw-r–r– 1 root root 52 Jan 3 10:00 error5xx.html -rw-r–r– 1 root root 134 Jan 3 00:52 index.html 你必须删除由vi或其它文本编辑器创建的备份文件: find /nginx -name ‘.?’ -not -name .ht -or -name ‘~’ -or -name ‘.bak’ -or -name ‘.old*’ find /usr/local/nginx/html/ -name ‘.?’ -not -name .ht -or -name ‘~’ -or -name ‘.bak’ -or -name ‘.old*’ 通过find命令的-delete选项来删除这些文件。 二十、限制Nginx连接传出 黑客会使用工具如wget下载你服务器本地的文件。使用Iptables从nginx用户来阻止传出连接。ipt_owner模块试图匹配本地产生的数据包的创建者。下面的例子中只允许user用户在外面使用80连接。 /sbin/iptables -A OUTPUT -o eth0 -m owner –uid-owner vivek -p tcp –dport 80 -m state –state NEW,ESTABLISHED -j ACCEPT 通过以上的配置,你的nginx服务器已经非常安全了并可以发布网页。可是,你还应该根据你网站程序查找更多的安全设置资料。例如,wordpress或者第三方程序。

KB小秘书 2019-12-02 02:06:56 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档1.报错现象:HTTP Error 500.22 - Internal Server ErrorAn ASP.NET setting has been detected that does not apply in Integrated managed pipeline mode.问题描述:IIS模式不识别,模式错误。解决方案:请您进入主机管理控制台(cp.hichina.com)—>高级环境设置—>.net版本设置。  2.报错现象:php 脚本GET传递变量打印后是乱码.问题描述:NT下的php需要设定转码。解决案例: 改成中国万网")?>">添加  3.报错现象:HTTP Error 404.0 - Not FoundThe resource you are looking for has been removed, had its name changed, or is temporarily unavailable问题描述:404报错。解决方案:处理方法检查404设置,需要进入主机管理控制台(cp.hichina.com)—>基础环境设置—>404页面设置中检查。  4.报错现象:Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005' [Microsoft][ODBC SQL Server Driver][Named Pipes]Specified SQL server not found. /conn.asp,行12问题描述:无法连接数据库。解决方案:1、检查其conn.asp中的数据库信息是否书写正确;2、检查数据库是否健康运行。  5.报错现象:NOT FoundThe requested URL/was not found on this server.Apache/1.3.26 Server at test.com port 80问题描述:访问的页面不存在。解决方案:检查页面的完整性或者重新上传。  6.报错现象:Directory Listing DeniedThis Virtual Directory does not allow contents to be listed.问题描述:域名没有绑定。解决方案:检查iis域名绑定和默认首页文件。请您进入主机管理控制台(cp.hichina.com)—>基础环境设置—>域名绑定和默认首页文件设置中调整。  7.报错现象:Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'  [Microsoft][ODBC Microsoft Access Driver]常见错误 不能打开注册表关键字 'Temporary (volatile) Jet DSN for process 0x4ec Thread 0x81c DBC 0x22f3544 Jet'。问题描述:ACCESS数据库读取报错解决方案:1).放弃ODBC方式读取,改用OLEDB来连接Access。连接字符串为:Provider=Microsoft.Jet.OLEDB.4.0;Data Source=数据库文件名。2).客户Access数据库文件可能损坏,解决方法将Access数据库文件FTP下载到本地,用本地Access打开,用修复功能修复数据库。  8.报错现象:Microsoft OLE DB Provider for SQL Server 错误 ‘80040e2f‘Cannot insert the value NULL into column ‘id‘, table ‘dsc*****_db.dsc*****.message‘; column does not allow nulls. INSERT fails.问题描述:在通过企业管理器导入数据库结构时,自动增量没有选中或丢失造成的解决方案:把原的数据库生成一个.sql语句,然后在服务器上的查询分析器上执行,以便可以在服务器上先创建库结构和存储过程,其次再让客户通过企业管理器进行导入即可。请参考万网提供的手册:SQL数据库用户使用手册SQL2005数据库的使用手册SQL2000数据库升级G享2005数据库操作手册

2019-12-01 23:21:55 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档1.报错现象:HTTP Error 500.22 - Internal Server ErrorAn ASP.NET setting has been detected that does not apply in Integrated managed pipeline mode.问题描述:IIS模式不识别,模式错误。解决方案:请您进入主机管理控制台(cp.hichina.com)—>高级环境设置—>.net版本设置。  2.报错现象:php 脚本GET传递变量打印后是乱码.问题描述:NT下的php需要设定转码。解决案例: 改成中国万网")?>">添加  3.报错现象:HTTP Error 404.0 - Not FoundThe resource you are looking for has been removed, had its name changed, or is temporarily unavailable问题描述:404报错。解决方案:处理方法检查404设置,需要进入主机管理控制台(cp.hichina.com)—>基础环境设置—>404页面设置中检查。  4.报错现象:Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005' [Microsoft][ODBC SQL Server Driver][Named Pipes]Specified SQL server not found. /conn.asp,行12问题描述:无法连接数据库。解决方案:1、检查其conn.asp中的数据库信息是否书写正确;2、检查数据库是否健康运行。  5.报错现象:NOT FoundThe requested URL/was not found on this server.Apache/1.3.26 Server at test.com port 80问题描述:访问的页面不存在。解决方案:检查页面的完整性或者重新上传。  6.报错现象:Directory Listing DeniedThis Virtual Directory does not allow contents to be listed.问题描述:域名没有绑定。解决方案:检查iis域名绑定和默认首页文件。请您进入主机管理控制台(cp.hichina.com)—>基础环境设置—>域名绑定和默认首页文件设置中调整。  7.报错现象:Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'  [Microsoft][ODBC Microsoft Access Driver]常见错误 不能打开注册表关键字 'Temporary (volatile) Jet DSN for process 0x4ec Thread 0x81c DBC 0x22f3544 Jet'。问题描述:ACCESS数据库读取报错解决方案:1).放弃ODBC方式读取,改用OLEDB来连接Access。连接字符串为:Provider=Microsoft.Jet.OLEDB.4.0;Data Source=数据库文件名。2).客户Access数据库文件可能损坏,解决方法将Access数据库文件FTP下载到本地,用本地Access打开,用修复功能修复数据库。  8.报错现象:Microsoft OLE DB Provider for SQL Server 错误 ‘80040e2f‘Cannot insert the value NULL into column ‘id‘, table ‘dsc*****_db.dsc*****.message‘; column does not allow nulls. INSERT fails.问题描述:在通过企业管理器导入数据库结构时,自动增量没有选中或丢失造成的解决方案:把原的数据库生成一个.sql语句,然后在服务器上的查询分析器上执行,以便可以在服务器上先创建库结构和存储过程,其次再让客户通过企业管理器进行导入即可。请参考万网提供的手册:SQL数据库用户使用手册SQL2005数据库的使用手册SQL2000数据库升级G享2005数据库操作手册

2019-12-01 23:21:56 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档1.报错现象:HTTP Error 500.22 - Internal Server ErrorAn ASP.NET setting has been detected that does not apply in Integrated managed pipeline mode.问题描述:IIS模式不识别,模式错误。解决方案:请您进入主机管理控制台(cp.hichina.com)—>高级环境设置—>.net版本设置。  2.报错现象:php 脚本GET传递变量打印后是乱码.问题描述:NT下的php需要设定转码。解决案例: 改成中国万网")?>">添加  3.报错现象:HTTP Error 404.0 - Not FoundThe resource you are looking for has been removed, had its name changed, or is temporarily unavailable问题描述:404报错。解决方案:处理方法检查404设置,需要进入主机管理控制台(cp.hichina.com)—>基础环境设置—>404页面设置中检查。  4.报错现象:Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005' [Microsoft][ODBC SQL Server Driver][Named Pipes]Specified SQL server not found. /conn.asp,行12问题描述:无法连接数据库。解决方案:1、检查其conn.asp中的数据库信息是否书写正确;2、检查数据库是否健康运行。  5.报错现象:NOT FoundThe requested URL/was not found on this server.Apache/1.3.26 Server at test.com port 80问题描述:访问的页面不存在。解决方案:检查页面的完整性或者重新上传。  6.报错现象:Directory Listing DeniedThis Virtual Directory does not allow contents to be listed.问题描述:域名没有绑定。解决方案:检查iis域名绑定和默认首页文件。请您进入主机管理控制台(cp.hichina.com)—>基础环境设置—>域名绑定和默认首页文件设置中调整。  7.报错现象:Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'  [Microsoft][ODBC Microsoft Access Driver]常见错误 不能打开注册表关键字 'Temporary (volatile) Jet DSN for process 0x4ec Thread 0x81c DBC 0x22f3544 Jet'。问题描述:ACCESS数据库读取报错解决方案:1).放弃ODBC方式读取,改用OLEDB来连接Access。连接字符串为:Provider=Microsoft.Jet.OLEDB.4.0;Data Source=数据库文件名。2).客户Access数据库文件可能损坏,解决方法将Access数据库文件FTP下载到本地,用本地Access打开,用修复功能修复数据库。  8.报错现象:Microsoft OLE DB Provider for SQL Server 错误 ‘80040e2f‘Cannot insert the value NULL into column ‘id‘, table ‘dsc*****_db.dsc*****.message‘; column does not allow nulls. INSERT fails.问题描述:在通过企业管理器导入数据库结构时,自动增量没有选中或丢失造成的解决方案:把原的数据库生成一个.sql语句,然后在服务器上的查询分析器上执行,以便可以在服务器上先创建库结构和存储过程,其次再让客户通过企业管理器进行导入即可。请参考万网提供的手册:SQL数据库用户使用手册SQL2005数据库的使用手册SQL2000数据库升级G享2005数据库操作手册

2019-12-01 23:21:55 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档1.报错现象:HTTP Error 500.22 - Internal Server ErrorAn ASP.NET setting has been detected that does not apply in Integrated managed pipeline mode.问题描述:IIS模式不识别,模式错误。解决方案:请您进入主机管理控制台(cp.hichina.com)—>高级环境设置—>.net版本设置。  2.报错现象:php 脚本GET传递变量打印后是乱码.问题描述:NT下的php需要设定转码。解决案例: 改成中国万网")?>">添加  3.报错现象:HTTP Error 404.0 - Not FoundThe resource you are looking for has been removed, had its name changed, or is temporarily unavailable问题描述:404报错。解决方案:处理方法检查404设置,需要进入主机管理控制台(cp.hichina.com)—>基础环境设置—>404页面设置中检查。  4.报错现象:Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005' [Microsoft][ODBC SQL Server Driver][Named Pipes]Specified SQL server not found. /conn.asp,行12问题描述:无法连接数据库。解决方案:1、检查其conn.asp中的数据库信息是否书写正确;2、检查数据库是否健康运行。  5.报错现象:NOT FoundThe requested URL/was not found on this server.Apache/1.3.26 Server at test.com port 80问题描述:访问的页面不存在。解决方案:检查页面的完整性或者重新上传。  6.报错现象:Directory Listing DeniedThis Virtual Directory does not allow contents to be listed.问题描述:域名没有绑定。解决方案:检查iis域名绑定和默认首页文件。请您进入主机管理控制台(cp.hichina.com)—>基础环境设置—>域名绑定和默认首页文件设置中调整。  7.报错现象:Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'  [Microsoft][ODBC Microsoft Access Driver]常见错误 不能打开注册表关键字 'Temporary (volatile) Jet DSN for process 0x4ec Thread 0x81c DBC 0x22f3544 Jet'。问题描述:ACCESS数据库读取报错解决方案:1).放弃ODBC方式读取,改用OLEDB来连接Access。连接字符串为:Provider=Microsoft.Jet.OLEDB.4.0;Data Source=数据库文件名。2).客户Access数据库文件可能损坏,解决方法将Access数据库文件FTP下载到本地,用本地Access打开,用修复功能修复数据库。  8.报错现象:Microsoft OLE DB Provider for SQL Server 错误 ‘80040e2f‘Cannot insert the value NULL into column ‘id‘, table ‘dsc*****_db.dsc*****.message‘; column does not allow nulls. INSERT fails.问题描述:在通过企业管理器导入数据库结构时,自动增量没有选中或丢失造成的解决方案:把原的数据库生成一个.sql语句,然后在服务器上的查询分析器上执行,以便可以在服务器上先创建库结构和存储过程,其次再让客户通过企业管理器进行导入即可。请参考万网提供的手册:SQL数据库用户使用手册SQL2005数据库的使用手册SQL2000数据库升级G享2005数据库操作手册

2019-12-01 23:21:56 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档1.报错现象:HTTP Error 500.22 - Internal Server ErrorAn ASP.NET setting has been detected that does not apply in Integrated managed pipeline mode.问题描述:IIS模式不识别,模式错误。解决方案:请您进入主机管理控制台(cp.hichina.com)—>高级环境设置—>.net版本设置。  2.报错现象:php 脚本GET传递变量打印后是乱码.问题描述:NT下的php需要设定转码。解决案例: 改成中国万网")?>">添加  3.报错现象:HTTP Error 404.0 - Not FoundThe resource you are looking for has been removed, had its name changed, or is temporarily unavailable问题描述:404报错。解决方案:处理方法检查404设置,需要进入主机管理控制台(cp.hichina.com)—>基础环境设置—>404页面设置中检查。  4.报错现象:Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005' [Microsoft][ODBC SQL Server Driver][Named Pipes]Specified SQL server not found. /conn.asp,行12问题描述:无法连接数据库。解决方案:1、检查其conn.asp中的数据库信息是否书写正确;2、检查数据库是否健康运行。  5.报错现象:NOT FoundThe requested URL/was not found on this server.Apache/1.3.26 Server at test.com port 80问题描述:访问的页面不存在。解决方案:检查页面的完整性或者重新上传。  6.报错现象:Directory Listing DeniedThis Virtual Directory does not allow contents to be listed.问题描述:域名没有绑定。解决方案:检查iis域名绑定和默认首页文件。请您进入主机管理控制台(cp.hichina.com)—>基础环境设置—>域名绑定和默认首页文件设置中调整。  7.报错现象:Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'  [Microsoft][ODBC Microsoft Access Driver]常见错误 不能打开注册表关键字 'Temporary (volatile) Jet DSN for process 0x4ec Thread 0x81c DBC 0x22f3544 Jet'。问题描述:ACCESS数据库读取报错解决方案:1).放弃ODBC方式读取,改用OLEDB来连接Access。连接字符串为:Provider=Microsoft.Jet.OLEDB.4.0;Data Source=数据库文件名。2).客户Access数据库文件可能损坏,解决方法将Access数据库文件FTP下载到本地,用本地Access打开,用修复功能修复数据库。  8.报错现象:Microsoft OLE DB Provider for SQL Server 错误 ‘80040e2f‘Cannot insert the value NULL into column ‘id‘, table ‘dsc*****_db.dsc*****.message‘; column does not allow nulls. INSERT fails.问题描述:在通过企业管理器导入数据库结构时,自动增量没有选中或丢失造成的解决方案:把原的数据库生成一个.sql语句,然后在服务器上的查询分析器上执行,以便可以在服务器上先创建库结构和存储过程,其次再让客户通过企业管理器进行导入即可。请参考万网提供的手册:SQL数据库用户使用手册SQL2005数据库的使用手册SQL2000数据库升级G享2005数据库操作手册

2019-12-01 23:21:54 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档1.报错现象:HTTP Error 500.22 - Internal Server ErrorAn ASP.NET setting has been detected that does not apply in Integrated managed pipeline mode.问题描述:IIS模式不识别,模式错误。解决方案:请您进入主机管理控制台(cp.hichina.com)—>高级环境设置—>.net版本设置。  2.报错现象:php 脚本GET传递变量打印后是乱码.问题描述:NT下的php需要设定转码。解决案例: 改成中国万网")?>">添加  3.报错现象:HTTP Error 404.0 - Not FoundThe resource you are looking for has been removed, had its name changed, or is temporarily unavailable问题描述:404报错。解决方案:处理方法检查404设置,需要进入主机管理控制台(cp.hichina.com)—>基础环境设置—>404页面设置中检查。  4.报错现象:Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005' [Microsoft][ODBC SQL Server Driver][Named Pipes]Specified SQL server not found. /conn.asp,行12问题描述:无法连接数据库。解决方案:1、检查其conn.asp中的数据库信息是否书写正确;2、检查数据库是否健康运行。  5.报错现象:NOT FoundThe requested URL/was not found on this server.Apache/1.3.26 Server at test.com port 80问题描述:访问的页面不存在。解决方案:检查页面的完整性或者重新上传。  6.报错现象:Directory Listing DeniedThis Virtual Directory does not allow contents to be listed.问题描述:域名没有绑定。解决方案:检查iis域名绑定和默认首页文件。请您进入主机管理控制台(cp.hichina.com)—>基础环境设置—>域名绑定和默认首页文件设置中调整。  7.报错现象:Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'  [Microsoft][ODBC Microsoft Access Driver]常见错误 不能打开注册表关键字 'Temporary (volatile) Jet DSN for process 0x4ec Thread 0x81c DBC 0x22f3544 Jet'。问题描述:ACCESS数据库读取报错解决方案:1).放弃ODBC方式读取,改用OLEDB来连接Access。连接字符串为:Provider=Microsoft.Jet.OLEDB.4.0;Data Source=数据库文件名。2).客户Access数据库文件可能损坏,解决方法将Access数据库文件FTP下载到本地,用本地Access打开,用修复功能修复数据库。  8.报错现象:Microsoft OLE DB Provider for SQL Server 错误 ‘80040e2f‘Cannot insert the value NULL into column ‘id‘, table ‘dsc*****_db.dsc*****.message‘; column does not allow nulls. INSERT fails.问题描述:在通过企业管理器导入数据库结构时,自动增量没有选中或丢失造成的解决方案:把原的数据库生成一个.sql语句,然后在服务器上的查询分析器上执行,以便可以在服务器上先创建库结构和存储过程,其次再让客户通过企业管理器进行导入即可。请参考万网提供的手册:SQL数据库用户使用手册SQL2005数据库的使用手册SQL2000数据库升级G享2005数据库操作手册

2019-12-01 23:21:55 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档1.报错现象:HTTP Error 500.22 - Internal Server ErrorAn ASP.NET setting has been detected that does not apply in Integrated managed pipeline mode.问题描述:IIS模式不识别,模式错误。解决方案:请您进入主机管理控制台(cp.hichina.com)—>高级环境设置—>.net版本设置。  2.报错现象:php 脚本GET传递变量打印后是乱码.问题描述:NT下的php需要设定转码。解决案例: 改成中国万网")?>">添加  3.报错现象:HTTP Error 404.0 - Not FoundThe resource you are looking for has been removed, had its name changed, or is temporarily unavailable问题描述:404报错。解决方案:处理方法检查404设置,需要进入主机管理控制台(cp.hichina.com)—>基础环境设置—>404页面设置中检查。  4.报错现象:Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005' [Microsoft][ODBC SQL Server Driver][Named Pipes]Specified SQL server not found. /conn.asp,行12问题描述:无法连接数据库。解决方案:1、检查其conn.asp中的数据库信息是否书写正确;2、检查数据库是否健康运行。  5.报错现象:NOT FoundThe requested URL/was not found on this server.Apache/1.3.26 Server at test.com port 80问题描述:访问的页面不存在。解决方案:检查页面的完整性或者重新上传。  6.报错现象:Directory Listing DeniedThis Virtual Directory does not allow contents to be listed.问题描述:域名没有绑定。解决方案:检查iis域名绑定和默认首页文件。请您进入主机管理控制台(cp.hichina.com)—>基础环境设置—>域名绑定和默认首页文件设置中调整。  7.报错现象:Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'  [Microsoft][ODBC Microsoft Access Driver]常见错误 不能打开注册表关键字 'Temporary (volatile) Jet DSN for process 0x4ec Thread 0x81c DBC 0x22f3544 Jet'。问题描述:ACCESS数据库读取报错解决方案:1).放弃ODBC方式读取,改用OLEDB来连接Access。连接字符串为:Provider=Microsoft.Jet.OLEDB.4.0;Data Source=数据库文件名。2).客户Access数据库文件可能损坏,解决方法将Access数据库文件FTP下载到本地,用本地Access打开,用修复功能修复数据库。  8.报错现象:Microsoft OLE DB Provider for SQL Server 错误 ‘80040e2f‘Cannot insert the value NULL into column ‘id‘, table ‘dsc*****_db.dsc*****.message‘; column does not allow nulls. INSERT fails.问题描述:在通过企业管理器导入数据库结构时,自动增量没有选中或丢失造成的解决方案:把原的数据库生成一个.sql语句,然后在服务器上的查询分析器上执行,以便可以在服务器上先创建库结构和存储过程,其次再让客户通过企业管理器进行导入即可。请参考万网提供的手册:SQL数据库用户使用手册SQL2005数据库的使用手册SQL2000数据库升级G享2005数据库操作手册

2019-12-01 23:21:55 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档1.报错现象:HTTP Error 500.22 - Internal Server ErrorAn ASP.NET setting has been detected that does not apply in Integrated managed pipeline mode.问题描述:IIS模式不识别,模式错误。解决方案:请您进入主机管理控制台(cp.hichina.com)—>高级环境设置—>.net版本设置。  2.报错现象:php 脚本GET传递变量打印后是乱码.问题描述:NT下的php需要设定转码。解决案例: 改成中国万网")?>">添加  3.报错现象:HTTP Error 404.0 - Not FoundThe resource you are looking for has been removed, had its name changed, or is temporarily unavailable问题描述:404报错。解决方案:处理方法检查404设置,需要进入主机管理控制台(cp.hichina.com)—>基础环境设置—>404页面设置中检查。  4.报错现象:Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005' [Microsoft][ODBC SQL Server Driver][Named Pipes]Specified SQL server not found. /conn.asp,行12问题描述:无法连接数据库。解决方案:1、检查其conn.asp中的数据库信息是否书写正确;2、检查数据库是否健康运行。  5.报错现象:NOT FoundThe requested URL/was not found on this server.Apache/1.3.26 Server at test.com port 80问题描述:访问的页面不存在。解决方案:检查页面的完整性或者重新上传。  6.报错现象:Directory Listing DeniedThis Virtual Directory does not allow contents to be listed.问题描述:域名没有绑定。解决方案:检查iis域名绑定和默认首页文件。请您进入主机管理控制台(cp.hichina.com)—>基础环境设置—>域名绑定和默认首页文件设置中调整。  7.报错现象:Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'  [Microsoft][ODBC Microsoft Access Driver]常见错误 不能打开注册表关键字 'Temporary (volatile) Jet DSN for process 0x4ec Thread 0x81c DBC 0x22f3544 Jet'。问题描述:ACCESS数据库读取报错解决方案:1).放弃ODBC方式读取,改用OLEDB来连接Access。连接字符串为:Provider=Microsoft.Jet.OLEDB.4.0;Data Source=数据库文件名。2).客户Access数据库文件可能损坏,解决方法将Access数据库文件FTP下载到本地,用本地Access打开,用修复功能修复数据库。  8.报错现象:Microsoft OLE DB Provider for SQL Server 错误 ‘80040e2f‘Cannot insert the value NULL into column ‘id‘, table ‘dsc*****_db.dsc*****.message‘; column does not allow nulls. INSERT fails.问题描述:在通过企业管理器导入数据库结构时,自动增量没有选中或丢失造成的解决方案:把原的数据库生成一个.sql语句,然后在服务器上的查询分析器上执行,以便可以在服务器上先创建库结构和存储过程,其次再让客户通过企业管理器进行导入即可。请参考万网提供的手册:SQL数据库用户使用手册SQL2005数据库的使用手册SQL2000数据库升级G享2005数据库操作手册

2019-12-01 23:21:54 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档1.报错现象:HTTP Error 500.22 - Internal Server ErrorAn ASP.NET setting has been detected that does not apply in Integrated managed pipeline mode.问题描述:IIS模式不识别,模式错误。解决方案:请您进入主机管理控制台(cp.hichina.com)—>高级环境设置—>.net版本设置。  2.报错现象:php 脚本GET传递变量打印后是乱码.问题描述:NT下的php需要设定转码。解决案例: 改成中国万网")?>">添加  3.报错现象:HTTP Error 404.0 - Not FoundThe resource you are looking for has been removed, had its name changed, or is temporarily unavailable问题描述:404报错。解决方案:处理方法检查404设置,需要进入主机管理控制台(cp.hichina.com)—>基础环境设置—>404页面设置中检查。  4.报错现象:Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005' [Microsoft][ODBC SQL Server Driver][Named Pipes]Specified SQL server not found. /conn.asp,行12问题描述:无法连接数据库。解决方案:1、检查其conn.asp中的数据库信息是否书写正确;2、检查数据库是否健康运行。  5.报错现象:NOT FoundThe requested URL/was not found on this server.Apache/1.3.26 Server at test.com port 80问题描述:访问的页面不存在。解决方案:检查页面的完整性或者重新上传。  6.报错现象:Directory Listing DeniedThis Virtual Directory does not allow contents to be listed.问题描述:域名没有绑定。解决方案:检查iis域名绑定和默认首页文件。请您进入主机管理控制台(cp.hichina.com)—>基础环境设置—>域名绑定和默认首页文件设置中调整。  7.报错现象:Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'  [Microsoft][ODBC Microsoft Access Driver]常见错误 不能打开注册表关键字 'Temporary (volatile) Jet DSN for process 0x4ec Thread 0x81c DBC 0x22f3544 Jet'。问题描述:ACCESS数据库读取报错解决方案:1).放弃ODBC方式读取,改用OLEDB来连接Access。连接字符串为:Provider=Microsoft.Jet.OLEDB.4.0;Data Source=数据库文件名。2).客户Access数据库文件可能损坏,解决方法将Access数据库文件FTP下载到本地,用本地Access打开,用修复功能修复数据库。  8.报错现象:Microsoft OLE DB Provider for SQL Server 错误 ‘80040e2f‘Cannot insert the value NULL into column ‘id‘, table ‘dsc*****_db.dsc*****.message‘; column does not allow nulls. INSERT fails.问题描述:在通过企业管理器导入数据库结构时,自动增量没有选中或丢失造成的解决方案:把原的数据库生成一个.sql语句,然后在服务器上的查询分析器上执行,以便可以在服务器上先创建库结构和存储过程,其次再让客户通过企业管理器进行导入即可。请参考万网提供的手册:SQL数据库用户使用手册SQL2005数据库的使用手册SQL2000数据库升级G享2005数据库操作手册

2019-12-01 23:21:55 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档1.报错现象:HTTP Error 500.22 - Internal Server ErrorAn ASP.NET setting has been detected that does not apply in Integrated managed pipeline mode.问题描述:IIS模式不识别,模式错误。解决方案:请您进入主机管理控制台(cp.hichina.com)—>高级环境设置—>.net版本设置。  2.报错现象:php 脚本GET传递变量打印后是乱码.问题描述:NT下的php需要设定转码。解决案例: 改成中国万网")?>">添加  3.报错现象:HTTP Error 404.0 - Not FoundThe resource you are looking for has been removed, had its name changed, or is temporarily unavailable问题描述:404报错。解决方案:处理方法检查404设置,需要进入主机管理控制台(cp.hichina.com)—>基础环境设置—>404页面设置中检查。  4.报错现象:Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005' [Microsoft][ODBC SQL Server Driver][Named Pipes]Specified SQL server not found. /conn.asp,行12问题描述:无法连接数据库。解决方案:1、检查其conn.asp中的数据库信息是否书写正确;2、检查数据库是否健康运行。  5.报错现象:NOT FoundThe requested URL/was not found on this server.Apache/1.3.26 Server at test.com port 80问题描述:访问的页面不存在。解决方案:检查页面的完整性或者重新上传。  6.报错现象:Directory Listing DeniedThis Virtual Directory does not allow contents to be listed.问题描述:域名没有绑定。解决方案:检查iis域名绑定和默认首页文件。请您进入主机管理控制台(cp.hichina.com)—>基础环境设置—>域名绑定和默认首页文件设置中调整。  7.报错现象:Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'  [Microsoft][ODBC Microsoft Access Driver]常见错误 不能打开注册表关键字 'Temporary (volatile) Jet DSN for process 0x4ec Thread 0x81c DBC 0x22f3544 Jet'。问题描述:ACCESS数据库读取报错解决方案:1).放弃ODBC方式读取,改用OLEDB来连接Access。连接字符串为:Provider=Microsoft.Jet.OLEDB.4.0;Data Source=数据库文件名。2).客户Access数据库文件可能损坏,解决方法将Access数据库文件FTP下载到本地,用本地Access打开,用修复功能修复数据库。  8.报错现象:Microsoft OLE DB Provider for SQL Server 错误 ‘80040e2f‘Cannot insert the value NULL into column ‘id‘, table ‘dsc*****_db.dsc*****.message‘; column does not allow nulls. INSERT fails.问题描述:在通过企业管理器导入数据库结构时,自动增量没有选中或丢失造成的解决方案:把原的数据库生成一个.sql语句,然后在服务器上的查询分析器上执行,以便可以在服务器上先创建库结构和存储过程,其次再让客户通过企业管理器进行导入即可。请参考万网提供的手册:SQL数据库用户使用手册SQL2005数据库的使用手册SQL2000数据库升级G享2005数据库操作手册

2019-12-01 23:21:54 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档1.报错现象:HTTP Error 500.22 - Internal Server ErrorAn ASP.NET setting has been detected that does not apply in Integrated managed pipeline mode.问题描述:IIS模式不识别,模式错误。解决方案:请您进入主机管理控制台(cp.hichina.com)—>高级环境设置—>.net版本设置。  2.报错现象:php 脚本GET传递变量打印后是乱码.问题描述:NT下的php需要设定转码。解决案例: 改成中国万网")?>">添加  3.报错现象:HTTP Error 404.0 - Not FoundThe resource you are looking for has been removed, had its name changed, or is temporarily unavailable问题描述:404报错。解决方案:处理方法检查404设置,需要进入主机管理控制台(cp.hichina.com)—>基础环境设置—>404页面设置中检查。  4.报错现象:Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005' [Microsoft][ODBC SQL Server Driver][Named Pipes]Specified SQL server not found. /conn.asp,行12问题描述:无法连接数据库。解决方案:1、检查其conn.asp中的数据库信息是否书写正确;2、检查数据库是否健康运行。  5.报错现象:NOT FoundThe requested URL/was not found on this server.Apache/1.3.26 Server at test.com port 80问题描述:访问的页面不存在。解决方案:检查页面的完整性或者重新上传。  6.报错现象:Directory Listing DeniedThis Virtual Directory does not allow contents to be listed.问题描述:域名没有绑定。解决方案:检查iis域名绑定和默认首页文件。请您进入主机管理控制台(cp.hichina.com)—>基础环境设置—>域名绑定和默认首页文件设置中调整。  7.报错现象:Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'  [Microsoft][ODBC Microsoft Access Driver]常见错误 不能打开注册表关键字 'Temporary (volatile) Jet DSN for process 0x4ec Thread 0x81c DBC 0x22f3544 Jet'。问题描述:ACCESS数据库读取报错解决方案:1).放弃ODBC方式读取,改用OLEDB来连接Access。连接字符串为:Provider=Microsoft.Jet.OLEDB.4.0;Data Source=数据库文件名。2).客户Access数据库文件可能损坏,解决方法将Access数据库文件FTP下载到本地,用本地Access打开,用修复功能修复数据库。  8.报错现象:Microsoft OLE DB Provider for SQL Server 错误 ‘80040e2f‘Cannot insert the value NULL into column ‘id‘, table ‘dsc*****_db.dsc*****.message‘; column does not allow nulls. INSERT fails.问题描述:在通过企业管理器导入数据库结构时,自动增量没有选中或丢失造成的解决方案:把原的数据库生成一个.sql语句,然后在服务器上的查询分析器上执行,以便可以在服务器上先创建库结构和存储过程,其次再让客户通过企业管理器进行导入即可。请参考万网提供的手册:SQL数据库用户使用手册SQL2005数据库的使用手册SQL2000数据库升级G享2005数据库操作手册

2019-12-01 23:21:55 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档1.报错现象:HTTP Error 500.22 - Internal Server ErrorAn ASP.NET setting has been detected that does not apply in Integrated managed pipeline mode.问题描述:IIS模式不识别,模式错误。解决方案:请您进入主机管理控制台(cp.hichina.com)—>高级环境设置—>.net版本设置。  2.报错现象:php 脚本GET传递变量打印后是乱码.问题描述:NT下的php需要设定转码。解决案例: 改成中国万网")?>">添加  3.报错现象:HTTP Error 404.0 - Not FoundThe resource you are looking for has been removed, had its name changed, or is temporarily unavailable问题描述:404报错。解决方案:处理方法检查404设置,需要进入主机管理控制台(cp.hichina.com)—>基础环境设置—>404页面设置中检查。  4.报错现象:Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005' [Microsoft][ODBC SQL Server Driver][Named Pipes]Specified SQL server not found. /conn.asp,行12问题描述:无法连接数据库。解决方案:1、检查其conn.asp中的数据库信息是否书写正确;2、检查数据库是否健康运行。  5.报错现象:NOT FoundThe requested URL/was not found on this server.Apache/1.3.26 Server at test.com port 80问题描述:访问的页面不存在。解决方案:检查页面的完整性或者重新上传。  6.报错现象:Directory Listing DeniedThis Virtual Directory does not allow contents to be listed.问题描述:域名没有绑定。解决方案:检查iis域名绑定和默认首页文件。请您进入主机管理控制台(cp.hichina.com)—>基础环境设置—>域名绑定和默认首页文件设置中调整。  7.报错现象:Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'  [Microsoft][ODBC Microsoft Access Driver]常见错误 不能打开注册表关键字 'Temporary (volatile) Jet DSN for process 0x4ec Thread 0x81c DBC 0x22f3544 Jet'。问题描述:ACCESS数据库读取报错解决方案:1).放弃ODBC方式读取,改用OLEDB来连接Access。连接字符串为:Provider=Microsoft.Jet.OLEDB.4.0;Data Source=数据库文件名。2).客户Access数据库文件可能损坏,解决方法将Access数据库文件FTP下载到本地,用本地Access打开,用修复功能修复数据库。  8.报错现象:Microsoft OLE DB Provider for SQL Server 错误 ‘80040e2f‘Cannot insert the value NULL into column ‘id‘, table ‘dsc*****_db.dsc*****.message‘; column does not allow nulls. INSERT fails.问题描述:在通过企业管理器导入数据库结构时,自动增量没有选中或丢失造成的解决方案:把原的数据库生成一个.sql语句,然后在服务器上的查询分析器上执行,以便可以在服务器上先创建库结构和存储过程,其次再让客户通过企业管理器进行导入即可。请参考万网提供的手册:SQL数据库用户使用手册SQL2005数据库的使用手册SQL2000数据库升级G享2005数据库操作手册

2019-12-01 23:21:56 0 浏览量 回答数 0

问题

【推荐】Windows虚拟内存不足问题的处理方法是什么

boxti 2019-12-01 22:06:24 3441 浏览量 回答数 0

问题

无法下载,使用的是J-LINK,是哪里出的问题?

wang2008go 2019-12-01 21:39:06 2274 浏览量 回答数 0

回答

学SQL语句性能的时候要注意非常重要一点: 不要用程序开发的思维思考数据库!! 在数据库中,SQL语句是一个抽象的概念,而不代表具体的实现。我举一个简单的例子,比如说A表和B表做连接,具体的Loop Join实现逻辑的伪代码为: for each row in t1 matching range { for each row in t2 matching reference key { for each row in t3 { if row satisfies join conditions, send to client } } } 而写SQL语句的时候,仅仅需要写select * from a inner join b on a.clo1=b.col2,该SQL语句仅仅写了你希望获得的结果,而没有写任何实现逻辑,因此SQL是无关实现的、抽象的。 那么具体如何执行在关系数据库中都有一个所谓的“优化器”实现,现代关系数据库的优化器是基于成本选择具体执行步骤(执行计划)的。因此妨碍优化器选择最优执行计划的SQL就不是好SQL。 首先提一下楼主举出文章的几点观点,我一个个纠正: 1. 选择最有效率的表名顺序。 这肯定是不对的,SQL优化器不会关心写表时,哪个表在前,哪个表在后,再次强调,SQL是抽象的、无关实现的。该语句在逻辑优化阶段优化器会自动选择最优的计划。 2. WHERE子句中的连接顺序 同上。 3. SELECT子句中避免使用 ‘ * ‘ 这一句话是正确的,但文章中提到: “实际上,在解析的过程中, 会将’’ 依次转换成所有的列名, 这个工作是通过查询数据字典完成的, 这意味着将耗费更多的时间.” 这种理解是错误的,解析号的成本几乎可以忽略不计。而更多的成本在于如下: 读取多余的列可能导致索引的书签查找,当读取条目多时会无法使用特定索引。 如果select 作用于表连接,可能造成更大的成本开销。 4. 计算记录条数 文章提到:count() 比count(1)稍快 这属于以讹传讹了,count()函数是聚合函数,指的是计算count()中所有非null的条目,count(1)和count(*)都是常量,意味着计算所有非空列。想象一下select 1 from 表,表中有10行的话就会返回10个1。count()同理,默认一般RDBMS会选择最窄的非Null列上的索引去统计具体条数。 5. 使用表的别名(Alias) 文中提到使用别名减少解析时间,我只能评论太有想象力了。 6. 用Where子句替换HAVING子句 这点的说法不合适,where和having是完全不同的子句,having的价值是使用聚合函数作为筛选条件中的一部分。没有谁替代谁一说。 那什么样的SQL语句是不好的语句呢: 那就是妨碍优化器更好的实现执行逻辑的SQL语句,这类语句包括: 1.where条件里出现各种花样百出的代码,比如函数、运算等。 2.语句过大,大量的表join会导致中间结果集不准确,从而限制优化器选择较好的执行计划。 等等......... 所以尝试尽量think like query optimizer,而不是think like programmer

茶什i 2020-01-13 11:47:16 0 浏览量 回答数 0

问题

为阿里云ECS(CentOS6)配置IPv6隧道地址

dongshan8 2019-12-01 21:39:02 56018 浏览量 回答数 57

回答

解题方法 对于此类考题,先说明如何定位低效SQL语句,然后根据SQL语句可能低效的原因做排查,先从索引着手,如果索引没有问题,考虑以上几个方面,数据访问的问题,长难查询句的问题还是一些特定类型优化的问题,逐一回答。 SQL语句优化的一些方法? 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:\ select id from t where num is null -- 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: select id from t where num= 3.应尽量避免在 where 子句中使用!=或<>操作符,否则引擎将放弃使用索引而进行全表扫描。 4.应尽量避免在 where 子句中使用or 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num=10 or num=20 -- 可以这样查询: select id from t where num=10 union all select id from t where num=20 5.in 和 not in 也要慎用,否则会导致全表扫描,如: select id from t where num in(1,2,3) -- 对于连续的数值,能用 between 就不要用 in 了: select id from t where num between 1 and 3 6.下面的查询也将导致全表扫描:select id from t where name like ‘%李%’若要提高效率,可以考虑全文检索。 7.如果在 where 子句中使用参数,也会导致全表扫描。因为SQL只有在运行时才会解析局部变量,但优化程序不能将访问计划的选择推迟到运行时;它必须在编译时进行选择。然 而,如果在编译时建立访问计划,变量的值还是未知的,因而无法作为索引选择的输入项。如下面语句将进行全表扫描: select id from t where num=@num -- 可以改为强制查询使用索引: select id from t with(index(索引名)) where num=@num 8.应尽量避免在 where 子句中对字段进行表达式操作,这将导致引擎放弃使用索引而进行全表扫描。如: select id from t where num/2=100 -- 应改为: select id from t where num=100*2 9.应尽量避免在where子句中对字段进行函数操作,这将导致引擎放弃使用索引而进行全表扫描。如: select id from t where substring(name,1,3)=’abc’ -- name以abc开头的id应改为: select id from t where name like ‘abc%’ 10.不要在 where 子句中的“=”左边进行函数、算术运算或其他表达式运算,否则系统将可能无法正确使用索引。

剑曼红尘 2020-03-31 11:28:54 0 浏览量 回答数 0
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 云栖号物联网 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站 云栖号弹性计算 阿里云云栖号 云栖号案例 云栖号直播