刚刚写了个DEMO,在内网来测试SQL2000后完全正常。现在想测试外网是否正常,毕竟路由器IP不固定,所以选择了路由器+花生壳免费域名(koma.5166.info),所以先安装花生壳客户端软件。下面是我在这过程中遇到的一些问题:

1、理论上将1433端口映射出去(这个端口是SQL2000服务器默认的端口)

结果发现程序、SQL查询分析器都无法连接服务器。这时我排除WINDOWS防火墙、关闭瑞星防火墙与杀毒软件仍无法连接。

于是乎查阅相关资料,网上的资料真的太多,涉及到的参数与设置太多,估计是大多人喜欢转载来转载去的,真不知道他们自己实践过没有。结果仍然没有成功!

2、SQL2000 SP4补丁程序

这是很多地方看到最多的一个方法,于是先下载安装完这个补丁后,发现DEMO程序与SQL查询分析器还是无法正确连接,于是查看端口监听状态,在命令行输入netstat -an

  1. C:/Documents and Settings/Koma>netstat -an
  2. Active Connections
  3. Proto  Local Address          Foreign Address        State
  4. TCP    0.0.0.0:135            0.0.0.0:0              LISTENING
  5. TCP    0.0.0.0:445            0.0.0.0:0              LISTENING
  6. TCP    0.0.0.0:1433           0.0.0.0:0              LISTENING
  7. TCP    0.0.0.0:6059           0.0.0.0:0              LISTENING
  8. TCP    127.0.0.1:1026         0.0.0.0:0              LISTENING
  9. TCP    127.0.0.1:1036         127.0.0.1:1025         CLOSE_WAIT
  10. TCP    127.0.0.1:1038         127.0.0.1:1025         CLOSE_WAIT
  11. TCP    192.168.1.100:139      0.0.0.0:0              LISTENING
  12. UDP    0.0.0.0:445            *:*
  13. UDP    0.0.0.0:1434           *:*
  14. UDP    127.0.0.1:123          *:*
  15. UDP    127.0.0.1:1049         *:*
  16. UDP    127.0.0.1:1239         *:*
  17. UDP    127.0.0.1:1900         *:*
  18. UDP    192.168.1.100:123      *:*
  19. UDP    192.168.1.100:137      *:*
  20. UDP    192.168.1.100:138      *:*
  21. UDP    192.168.1.100:1900     *:*
  22. C:/Documents and Settings/Koma>

此时我关闭所有那些无关的应用程序,于是将上面所有侦听的端口全部隐射出去,最终排锁定在两个端口:1433与445。

3、DEMO程序相关代码

A、建立连接时的代码:

  1. BOOL CQDlg::OnInitDialog()
  2. {
  3. ......
  4. // Set the icon for this dialog.  The framework does this automatically
  5. //  when the application's main window is not a dialog
  6. SetIcon(m_hIcon, TRUE);         // Set big icon
  7. SetIcon(m_hIcon, FALSE);        // Set small icon
  8. // TODO: Add extra initialization here
  9. //初始化COM接口
  10. if (!AfxOleInit())
  11. {
  12. AfxMessageBox("初始化com接口失败");
  13. }
  14. HRESULT hr;
  15. try
  16. {
  17. // 创建Connection对象
  18. hr = m_pConnection.CreateInstance("ADODB.Connection");
  19. if(SUCCEEDED(hr))
  20. {
  21. // 连接数据库成功
  22. hr = m_pConnection->Open("Provider=SQLOLEDB;Server=koma.5166.info,1433;DataBase=student;UID=sa;PWD=","","",adModeUnknown);
  23. // MessageBox("数据库连接成功!");
  24. }
  25. }
  26. catch(_com_error e)
  27. {
  28. // 捕捉异常
  29. CString errormessage;
  30. errormessage.Format("连接数据库失败!/r/n错误信息:%s",e.ErrorMessage());
  31. AfxMessageBox(errormessage);///显示错误信息
  32. }
  33. return TRUE;
  34. }

B、程序运行效果:

C、SQL查询分析器:

4、总结

MS SQL2000“表面”上看起来像只是1433端口在侦听,但实际上还有个445端口也在侦听,两者缺一不可。 所以让外网主机访问内网SQL2000服务器必须先安装SP4补丁(打补丁前请先备份好自己重要的数据),再将1433与445端口两个都从NAT设备中映射出去即可。

至于为什么需要同时侦听这两个端口,哪位友友知道的麻烦告诉我一下,谢谢啊!

SQL2000服务端配置-如何让外网访问SQL2000的更多相关文章

  1. TortoiseSVN和VisualSVN-Server的配置使用,外网访问SVN版本库

    TortoiseSVN和VisualSVN-Server的配置使用,外网访问SVN版本库 SVN客户端程序:TortoiseSVN SVN服务器程序:VisualSVN-Server ######## ...

  2. VMware下Linux配置局域网和外网访问

    我想尝试的是利用本机的ip+port来访问虚拟机上的web服务器,因为这样的话,我就能够将我的web服务器部署成为一个能让外网访问的服务器了,首先说下我的环境: 主机:系统win7,ip地址172.1 ...

  3. wamp基本配置与设置外网访问

    wamp安装(都是一键安装)正常启动后,做一些基本配置的介绍: 1.打开rewrite_module,方法一:左键点击wamp图标,鼠标移至Apache,然后平移至Apache模块,勾选rewrite ...

  4. VMware下Linux配置局域网和外网访问(CentOS)

    要使用Linux系统很重要的一个操作就是使Linux系统能够访问互联网,只有Linux系统能够访问互联网才能够去下载很多自己所需要的资源,如果不能访问互联网那么使用Linux系统往往会卡在这一步,假设 ...

  5. centos7下配置iptables实现外网访问内网服务器

    说明:Centos 7 默认的防火墙是 firewall,安装iptables之前需关闭Firewall 外网机器:外网ip:120.25.71.183内网ip:10.1.1.23 内网机器:内网ip ...

  6. VMware下Linux网络配置局域网和外网访问

    要使用Linux系统很重要的一个操作就是使Linux系统能够访问互联网,只有Linux系统能够访问互联网才能够去下载很多自己所需要的资源,如果不能访问互联网那么使用Linux系统往往会卡在这一步,假设 ...

  7. 配置cas可外网访问

    把应用程序tomcat下的conf下的context.xml里配置内容修改 如把: D:\apache-tomcat-APP\conf\context.xml <Resource name=&q ...

  8. wamp2.5 配置Apache允许外网访问

    找到<Directory "e:/wamp/www/">节点,在里面添加Require all granted

  9. WAMP完整配置教程(启用php extensions、修改端口、允许外网访问、wamp绑定域名)。

    作为一名php爱好者,很希望自己的写的代码能够快速的在浏览器页面展现出来,wamp是一款集成很完善.很方便的软件,我刚开始研究的时候,会因为对于wamp的不熟悉,导致修改一点点配置就会在百度查好久,这 ...

随机推荐

  1. c#网站文件下载次数统计

    参考:http://q.cnblogs.com/q/17954/ 项目中需要准确记录文件的下载次数,和帖子的要求差不多. 参考了帖子中推荐的链接,问题得到了有效控制. 大概方法:逐字节(大小可以自己控 ...

  2. jquery 获取访问当前页面的开源设备信息

    <!DOCTYPE html> <html> <head> <title>测试js</title> <meta http-equiv= ...

  3. Flask中的route

    1. route的定义: 客户端发送请求给web服务器,web服务器再将请求发送给Flask程序实例 程序实例需要知道每个url请求所对应的运行代码是谁.所以程序中必须要创建一个 url 请求地址 到 ...

  4. 使用kcptun安全代理访问服务

    KCP 是一个快速可靠协议,能以比 TCP浪费10%-20%的带宽的代价,换取平均延迟降低 30%-40%,且最大延迟降低三倍的传输效果. KCP:https://github.com/skywind ...

  5. SQLI DUMB SERIES-1

    less-1 (1) 可以看到提示输入ID,而且less-1题目也有提到GET,因此试试以下操作: http: 结果: http: 结果: 现在可知,“ ' ”并没有被过滤,因此可以进行以下操作: h ...

  6. 再回首 基本数据类型和 if语句

    一 变量:(使用变量是不能加引号,要不就变成字符串了) 变量的命名规则: 1.数字,字母,下划线组成. 2.变量不能是数字开头 3.区分大小写 4.不要使用中文或者拼音 5.要有相应的意义 6.不能使 ...

  7. windows错误:错误0x80070091 目录不是空的

    错误: Window 下目录无法删除,提示 “ 错误0x80070091 目录不是空的 ” 解决: 1.开始菜单>附件>命令提示符>右键>以管理员身份运行 2.删除文件:(如 ...

  8. 06 Listener,Filter,BeanUtils

    Listener 监听器,监听某一个事件的发生. 状态的改变. 内部机制其实就是接口回调. 接口回调  需求:A在执行循环,当循环到5的时候, 通知B.事先先把一个对象传递给 A , 当A 执行到5的 ...

  9. oracle 数据库相关名词--图解

     通过下图,我们可以更好的理解oracle的结构关系. 知识拓展: 知识点及常用的命令如下: 1)通常情况我们称的“数据库”,并不仅指物理的数据集合,他包含物理数据.数据库管理系统.也即物理数据.内存 ...

  10. Spring Cloud 微服务实战

    Eureka 服务治理 Maven dependency 与spring boot的版本的对应 Finchley兼容Spring Boot 2.0.x,不兼容Spring Boot 1.5.x Dal ...