刚刚写了个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. 测试之法 —— mock object

    mock object 与真实对象相比,用来构造测试场景. 1. 一个实例 一个闹钟根据时间来进行提醒服务,如果过了下午5点钟就播放音频文件提醒大家下班了,如果我们要利用真实的对象来测试的话就只能苦苦 ...

  2. Python学习笔记第十周

    目录: 一.基础概念 1.多进程 2.进程间通信 3.进程锁 4.进程池 5.协程 a) greenlet b) Gevent 6.论事件驱动与异步IO 7.IO多路复用 8.Python Selec ...

  3. Micro- and macro-averages

    https://datascience.stackexchange.com/questions/15989/micro-average-vs-macro-average-performance-in- ...

  4. Odoo9以后的社区版本和企业版功能上的区别

    Odoo9以后的社区版本和企业版除了授权模式的区别外,整理功能上的区别 透过功能设置菜单整理的区别如下,主要功能模块. 未包括所有模块,毕竟模块太多了. 以下是企业版有,而社区版没有的功能.

  5. Install Java on Ubuntu server

    准备工作 a) 获得超级用户权限 关于超级用户访问权限的说明: 要将 Java 安装在系统级位置(例如 /usr/java),则必须以超级用户身份登录,从而获得必要的权限.如果您不具有超级用户访问权限 ...

  6. YIT-CTF—隐写术

    一:小心心 下载图片——>改后缀名为TXT——>打开发下最后一行有flag 二:双生 下载两张图片——>应为题目说的是双生——>想到可能是两张图片的叠加——>打开图片查看 ...

  7. 【HDOJ2767】【Tarjan缩点】

    http://acm.hdu.edu.cn/showproblem.php?pid=2767 Proving Equivalences Time Limit: 4000/2000 MS (Java/O ...

  8. 第一个程序HelloWorld及常见问题解决和练习

    public class hello world{ public static void main(String[] args){ System.out.println(); } } 注意事项: 源文 ...

  9. python:代码复用与函数递归

    #recursion.py:打印斐波那契数列 def fact(n): if n==1 or n==2: return 1 else: return fact(n-1)+fact(n-2) while ...

  10. MATLAB中版本和日期函数

    本博客中输出版本号和日期的子函数,今天才发现忘记上代码了,这里补上 function banner() %% --------------------------------------------- ...